发表日期:2019-08 文章编辑:小灯 浏览次数:970
RSA工具下载地址
node-rsa 地址
npm install node-rsa
生成密钥,使用RAS工具生成密钥
导入私钥,私钥来源于上图中“商户应用私钥”
const NodeRSA = require('node-rsa');
let userPrivateKey = `-----BEGIN PRIVATE KEY-----[你的私钥]-----END PRIVATE KEY-----`;
const key = new NodeRSA();
key.setOptions({b: 1024, signingScheme: "sha1"});//配置密钥长度,并设置签名方法
key.importKey(userPrivateKey, 'pkcs8-private');//导入密钥并设定格式
const publicDer = key.exportKey('pkcs8-public');
console.log(publicDer);
输出结果与RSA公钥结果对比
结果一致
a=123&charset=UTF-8&method=alipay.mobile.public.menu.add&sign_type=RSA×tamp=2014-07-24 03:07:50&version=1.0
注意:参数中charset和sign_type对应工具中的字符集和签名方式
let text = '[签名字符串]';
let buffer = Buffer.from(text);
let signature = key.sign(buffer).toString('base64');
console.log(signature);
结果一致
完整代码
const NodeRSA = require('node-rsa');
let userPrivateKey = `-----BEGIN PRIVATE KEY-----MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKM4jTMTftwr3Vtk1LxCY8Nqlmk3WQa7FecvizcMIxgGjg2pQg4ZFOahKxv4VgrjUtgctgIsVebVDcCBxkyPEKYYjFyT20Ez6wcuYsI30lJCJOK7iTw/8QtvkJBrRZhVEYkiSSb9EBG+xuHA3H0nRn/XxRhZTMdNozki1nXNNl2pAgMBAAECgYAuCOEqKrF4/5YrFME7Z64ji4honIerclC3J52oJPAw8ohWKgrLVx+h/IrgFKaP45WWBmL/Men4dNawGOoI5cDX4zf+H7cOFAIVg+0SEqODAiHHYj6aQ+P6qTPJEshmA6DNcjpliuvEACFcg+m4w2NjRN3jeNTBAnhg11WbxKIUQQJBAO0jyJ0FUr7TONXVtjFZC3tSsjv8r3BUjfcuY1tOfusWQQpLMtENOeaY4mjoVkGynDHc/ZiZd8zHsQjB9P238BUCQQCwM8OOZEhiJOog5PAbq3IFTO7nuj9UCjNik+SetXCq3tjPXaGqBrxsWpW8I9diKyXYv0VC/xI+FQut2fVlGghFAkAbjs0BclzrUCCKuQszMOXkrveHgRXiN/FHiFyDf9u/9hYY3CRLpv3TjnDBQD7F47vDD6to0Gzbn1kza1bNJVMBAkEAoRxzrvsbBEJkofczZNl6xEX4HII77Yf2PCimXkfg4RwqelFOxLysBRc+2mybP/PcAzfBCOVZtNJhf3FP5EXNUQJBAMiXPbZ30X/EdAkIGk+cLjzlf2QiOTsKMNY46mzRZV93TziIK3yjtxQozSoZxu4+qKqDKtgpRqw/wCvhTYBBJx0=-----END PRIVATE KEY-----`;
const key = new NodeRSA();
key.setOptions({b: 1024, signingScheme: "sha1"});
key.importKey(userPrivateKey, 'pkcs8-private');//导入密钥并设定格式
const publicDer = key.exportKey('pkcs8-public');
console.log(publicDer);
let text = 'a=123&charset=UTF-8&method=alipay.mobile.public.menu.add&sign_type=RSA×tamp=2014-07-24 03:07:50&version=1.0';
let buffer = Buffer.from(text);
let signature = key.sign(buffer).toString('base64');
console.log(signature);
日期:2019-02 浏览次数:6403
日期:2019-02 浏览次数:4162
日期:2019-02 浏览次数:3907
日期:2019-02 浏览次数:4363
日期:2019-02 浏览次数:4093
日期:2019-02 浏览次数:7220
日期:2019-02 浏览次数:3951
日期:2019-02 浏览次数:4435
日期:2019-02 浏览次数:4284
日期:2019-02 浏览次数:3970
日期:2019-02 浏览次数:4305
日期:2019-02 浏览次数:4075
日期:2019-02 浏览次数:3974
日期:2019-02 浏览次数:3897
日期:2019-02 浏览次数:4642
日期:2019-02 浏览次数:4098
日期:2019-02 浏览次数:4088
日期:2019-02 浏览次数:4149
日期:2019-02 浏览次数:4107
日期:2019-02 浏览次数:4019
日期:2019-02 浏览次数:4384
日期:2019-09 浏览次数:4405
日期:2019-09 浏览次数:4058
日期:2019-09 浏览次数:4076
日期:2019-09 浏览次数:4028
日期:2019-09 浏览次数:4006
日期:2019-09 浏览次数:4100
日期:2019-09 浏览次数:4047
日期:2019-09 浏览次数:4516
日期:2019-09 浏览次数:5031
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.