node.js - 如何生成 key 对并使用它来签名和验证 Node.js 中的文本?

标签 node.js encryption rsa public-key-encryption

如何生成私钥和公钥,使用私钥对任意文本的哈希进行签名,然后在其他地方使用公钥来验证签名?

最佳答案

使用URSA (OpenSSL 加密的 Node.js 包装器):

var ursa = require('ursa');

// Generate RSA private key (public key included)
var keyPair = ursa.generatePrivateKey();

// Convert public key to string
var pub = keyPair.toPublicPem('base64');

// Create buffer from text
var data = new Buffer('Hello, world!');

// Create MD5 hash and sign with private key
var sig = keyPair.hashAndSign('md5', data);

// Elsewhere...

// Create public key object from PEM string
pub = ursa.createPublicKey(pub, 'base64');

// Verify signature - should return true
pub.hashAndVerify('md5', data, sig);

关于node.js - 如何生成 key 对并使用它来签名和验证 Node.js 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655581/

相关文章:

javascript - Express:有必要用status 200响应吗?

javascript - Express JS - 无法将数组推送到 MongoDB 中的表

java - 在Java中打印随机数

php - Laravel 5.1 Session 和 Socket.IO + Redis - 向登录(已知)用户和用户组发送通知

node.js - 有没有办法从 node.js 同步调用 AWS Lambda?

java - 编辑代码示例以指定 DES key 值

python - 如何解压缩/解密 gzip 文件的单行

android - 如何将 openssl RSA key 转换为 Android 引导加载程序 RSA key 格式?

java - 方法 kpg.initialization 中的 Android 空指针异常

c++ - BER解码错误