javascript - Node js通过公钥加密值错误TypeError : Data must be a buffer

标签 javascript node.js encryption cryptojs

我有一个与支付网关配合使用的后端服务,为此我需要加密一些参数。我正在使用 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/

相关文章:

ruby-on-rails - 在 Ruby 的后台作业中保护密码

javascript - 表单的自定义 "Multi-Parameter"验证器并不总是触发

javascript - NodeJS 中变量未读取值

javascript - Handlebars 助手未定义。

javascript - 合并两个相似的 JSON 对象,但一个在 NodeJS 中具有更多键

java - 如何解密从 Shibboleth IdP 收到的 SAMLResponse

javascript - 我的 Angular 应用程序可以有两个 Firebase 配置吗

javascript - 使用 Jquery 在长时间流程执行之前和之后更改元素的 css

node.js - 如何使用node.js获取连接到WiFi的所有MAC地址?

mysql - 如何加密论坛注册的用户密码?