wkiwi的博客

Error: Digest already called

发布时间:4年前热度: 2099 ℃评论数:

代码修改前

const crypto = require("crypto");
const md5 = crypto.createHash("md5");

/**验签sign参数加密
 * @param $data
 * @param $appSecret
 * @return string
 */
const makeSign = ($data, $appSecret) => {
  let $str = "";
  let $index = 0;
  let $sortPor = [];

  for (let key in $data) {
    $sortPor.push(`${key}=${$data[key]}`);
  }
  // 排序
  $sortPor.sort();

  // 转url
  for (let key in $sortPor) {
    $str = `${$str}${$index === 0 ? "" : "&"}${$sortPor[key]}`;
    $index++;
  }

  // md5加密
  const $ret = md5
    .update(`${$str}&key=${$appSecret}`)
    .digest("hex");

  return $ret;
};

module.exports = makeSign;


代码修改后

const crypto = require("crypto");
// const md5 = crypto.createHash("md5");

/**验签sign参数加密
 * @param $data
 * @param $appSecret
 * @return string
 */
const makeSign = ($data, $appSecret) => {
  let $str = "";
  let $index = 0;
  let $sortPor = [];

  for (let key in $data) {
    $sortPor.push(`${key}=${$data[key]}`);
  }
  // 排序
  $sortPor.sort();

  // 转url
  for (let key in $sortPor) {
    $str = `${$str}${$index === 0 ? "" : "&"}${$sortPor[key]}`;
    $index++;
  }

  // md5加密
  const $ret = crypto
    .createHash("md5")
    .update(`${$str}&key=${$appSecret}`)
    .digest("hex");

  return $ret;
};

module.exports = makeSign;


一个crypto实例只能调用digest一次,每次加密重新调用crypto

Digest already called,crypto,md5

手机扫码访问