gpt4 book ai didi

node.js - 在node js中通过xml privateKey对字符串进行签名

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:37 25 4
gpt4 key购买 nike

我有一个 sh1 散列字符串,我想通过我的 Node js 代码中的 xml 私钥对其进行签名。我该怎么做?我使用 crypto 来执行此操作,但它不支持 xml 私钥。所以可以吗请告诉我该怎么做?这是我的代码:

   var sha1 = crypto.createHash('sha1');
const crypto = require('crypto');

const sign = crypto.createSign('RSA-SHA1');
const TerminalCode = 123;
const MerchantCode = 4566;
const privateKey ="<RSAKeyValue><Modulus>tew9OJzFRBF0UbAU5M3vF18UDWxCseQkWtQI7tTrQcJisT31oqSv0uvwx3zQf0oGj9VnxeNeytm+xFxVt1lq+oGP5icJdiFdPHl2P5lD+T4sEyKGsiuPqXXkpWG3oY1V2t4BHmnJTr4jPRYInSQi9RvOWDUtRlgFLEQxgV2flvc=</Modulus><Exponent>AQAB</Exponent><P>3ElB9JPqabnMPzr8K1Fi4qd8YxIdbJln2JMx54G0ISjMzhv29GW3g3jOpAAtKlR49HTnz5F4T65mWm3jRhK4NQ==</P><Q>02rAXLUMpPu/CByB2TamTkVDpRsDRteGZ2dBjtOB4D6YQir6hsuQpnhCR7vzz7p8IFf06flL/Ly7ZL1Bpo5v+w==</Q><DP>HYWX2D5GiRrEW6j9CJUkqnmFuwU/ekFo4GaBpqQETvlX0TuAMiq7mFwFXYdEhkrB1wkf0/qL5CncP7xAXDDADQ==</DP><DQ>WSN5V50+Z5F9Sf47AUp5dCbgDo0FJKlakd6HVaD38YRyzfMxDgRmSMoLqBMnCT6ndzuel8f0seshV6g0NfV4YQ==</DQ><InverseQ>g7bnQMwCsRSOtPCBYub7P4AHJgvv+kbc4Kacq0UlZk8f+uMSoPU14stoiNHeo3htW8rx/XySW72EuLG6ej6OWA==</InverseQ><D>nsISix0EaWpx//eRxDqSs+qdLTmU2nkl4L25LfNReomQZuyTN+RQK9kKvowFx49qOosZjG/ngU6UU/fgNakq2QkKw8D9w+cbwF7kyDpr6AkngfY0w+X3q5hZUEcCFKiA6P0nw55TvSoGvtQK+zAdVAjJGmHCZ4qIWzXLX1CcOUE=</D></RSAKeyValue>"





var string =`#${MerchantCode}#${TerminalCode}#123#$12344566#$12342326#http://kalno.ir/pasargad/payback#${1003}#$434536`
sha1.update(string);
sha1 = sha1.digest('hex');
sign.write(toString(sha1));
// sign.end();
privateKey = sign.sign(privateKey, 'base64')

但是当我这样做时,加密符号给我一个错误,其中包含此 xml 私钥不正确。“错误:错误:0906D06C:PEM 例程:PEM_read_bio:无起始行”

最佳答案

使用Online Converter将您的XML key 转换为PEM或使用类似 rsa-xml 的库将其转换为 Node.JS

const RSAXML = require('rsa-xml');
const xmlKey = '<RSAKeyValue>...</RSAKeyValue>';
const pemKey = new RSAXML().exportPemKey(xmlKey);

console.log(pemKey); // -----BEGIN RSA PRIVATE KEY----- ...

关于node.js - 在node js中通过xml privateKey对字符串进行签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52912510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com