美文网首页
jsrsasign的签名算法

jsrsasign的签名算法

作者: 山野乔治 | 来源:发表于2020-07-21 12:09 被阅读0次

基于jsrsasign的签名函数

import jsrsasign, { KEYUTIL, KJUR, RSAKey } from 'jsrsasign';
import { appSecret } from '../config';

export default function sha1withRsa(obj) {
  var newArr = [];
  var newObj = {};
  var str = '';
  for (const key in obj) {
    newArr.push(key);
  }
  newArr = newArr.sort()
  for (let i = 0; i < newArr.length; i++) {
    newObj[newArr[i]] = obj[newArr[i]];
    str += `${newArr[i]}=${newObj[newArr[i]]}`;
    if (i == newArr.length - 1) {
      continue;
    }
    str += '&';
  }
  let rsa = new RSAKey();
  rsa = KEYUTIL.getKey(appSecret);
  // 创建Signature对象,设置签名编码算法
  let sig = new KJUR.crypto.Signature({ "alg": "SHA256withRSA" });
  // 初始化
  sig.init(rsa)
  // 传入待加密字符串
  sig.updateString(str)
  // 生成密文
  let sign = jsrsasign.hextob64(sig.sign());
  // 对加密后内容进行URI编码
  sign = encodeURIComponent(sign);
  //把参数与密文拼接好
  // let params = newStr + '&sign=' + sign;
  return sign
}

注意:传入pem标准格式的秘钥字符串, 解析生成秘钥实例: RSAKey. 标准的pem格式秘钥含有开始标记和结束标记。-----BEGIN xxx-----, -----END xxx-----

相关文章

  • jsrsasign的签名算法

    基于jsrsasign的签名函数 注意:传入pem标准格式的秘钥字符串, 解析生成秘钥实例: RSAKey. 标准...

  • 区块链开发——数字签名扩展 #C02

    本篇为资料整理 数字签名算法 常见的数字签名算法主要有RSA、DSA、ECDSA三种。 RSA数字签名算法 RSA...

  • IOTA 基石 - ISS 签名算法详解

    一、概要 IOTA 消息签名 方案使用的是Winternitz一次签名算法(WOTS),它是一种hash 签名算法...

  • 4.2 RSA数字签名技术

    数字签名技术 - RSA数字签名技术 RSA算法不仅是非对称加密算法,也是数字签名算法中的主力军,和MD、SHA系...

  • 3、数字签名(ECDSA)

    比特币中使用的数字签名算法是椭圆曲线数字签名算法(Elliptic Curve Digital Signature...

  • CPK数字签名知识点

    数字签名算法包含签名和验证两项操作,遵循私钥签名,公钥验证的签名验证方式,其中核心算一种法主要是消息摘要算法,因此...

  • 4.3 DSA数字签名技术

    数字签名技术 -- DSA算法 DSA算法是1991年美国国家标准技术协会公布的数字签名标准(DSS)的核心算法。...

  • 加密算法 IPFS

    加密算法 Ed25519: 数字签名算法 生成公私钥对,可做签名 验证等。 Salsa20: 流加密算法

  • 计算机安全学-第四次实践作业-2018/4/17

    [new] 1、用Python或Sage实现RSA算法的加密、解密、签名/验证签名使用sage实现RSA算法进行加...

  • 数字签名

    数字签名=摘要算法(HASH算法)+非对称加密

网友评论

      本文标题:jsrsasign的签名算法

      本文链接:https://www.haomeiwen.com/subject/ulkikktx.html