如何在node.js中创建用于签名数据的公钥和私钥?

时间:2014-01-08 20:36:15

标签: javascript node.js cryptography

仅使用node.js我想实现以下目标:

  • 创建一个人类可读的强大随机私钥/公钥。

  • 获取字符串数据和私钥以在base64中创建签名

  • 获取字符串数据,公钥和签名,并确认签名是由私钥所有者创建的。

到目前为止,我有以下内容:

var crypto = require('crypto');
var message = "This is a string I want to ensure is not tampered with.";
var sign = crypto.createSign("RSA-SHA256");
sign.update(message);
var signature = sign.sign("thisiswhereiassumetheprivatekeywillgo", "base64");

console.log(message);
console.log(signature);

但控制台输出仅显示消息,签名返回空。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

所有现代加密都使用二进制数据,通常用字节表示。许多脚本语言在字节和字符之间执行一些魔术转换,但问题是字节数​​组通常不仅包含可打印字符。

要将字节转换为人类可读的形式,您需要应用某种形式的。出于调试目的,最好转换为十六进制(基数为16的编码)。出于效率原因,您还可以使用base 64编码。两种编码均由RFC4648指定。