【问题标题】:How do I create a public and private key in node.js for signing data?如何在 node.js 中创建用于签名数据的公钥和私钥?
【发布时间】:2014-01-11 21:41:21
【问题描述】:

仅使用 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);

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

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript node.js cryptography


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2019-06-18
      • 1970-01-01
      • 2019-02-28
      • 2017-11-12
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多