我有一个与支付网关配合使用的后端服务,为此我需要加密一些参数。我正在使用 crypto 库,但在包含值总和的签名值中,let value = a+b+c+d
它返回如下错误消息:
TypeError: Data must be a buffer
at Sign.sign (crypto.js:331:26)
这是我的加密函数
const sign = (value) => {
let sign = crypto.createSign('SHA1');
sign.update(Buffer.from(value), 'utf8');
return sign.sign(PrivateKey, 'base64');
}
我的私钥是这样的 123
最佳答案
which my PrivateKey is something like this 123
您的PrivateKey
错误。执行以下命令生成私钥openssl genrsa -out privkey.pem 1024
。
let pem = fs.readFileSync('./privkey.pem');
let PrivateKey = pem.toString('ascii');
crypto
模块描述为
The crypto module provides cryptographic functionality that includes a set of wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.
关于javascript - Node js通过公钥加密值错误TypeError : Data must be a buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48515282/