📜  Node.js ecdh.generateKeys() 方法(1)

📅  最后修改于: 2023-12-03 14:44:38.365000             🧑  作者: Mango

Node.js ecdh.generateKeys() 方法

在 Node.js 中,可以使用 crypto 模块实现非对称加密,其中 ecdh 是一种椭圆曲线算法。ecdh.generateKeys()ecdh 对象的一个方法,用于生成公钥和私钥。

语法
ecdh.generateKeys([encoding[, format]])
参数
  • encoding (可选):编码格式,可以是'latin1''hex''base64'
  • format (可选):输出格式,可以是'compressed''uncompressed''hybrid'
返回值

返回一个 Buffer 类型的对象,表示生成的公钥或私钥。

示例
const crypto = require('crypto');
const ecdh = crypto.createECDH('secp256k1');

// 生成私钥和公钥
const privateKey = ecdh.generateKeys();
const publicKey = ecdh.getPublicKey();

console.log('私钥:', privateKey.toString('hex'));
console.log('公钥:', publicKey.toString('hex'));

输出结果类似于:

私钥: 6c4be6af03f3d2c4ca9ef936e26f6c1dba2f3cdf3f02645c285eeaafaa076c41
公钥: 04c88fb9db657a49d717dfa1b590842e505154a114f13004f5aac9572968d5b2ba5f5a941d23f890ee7e1939822fc7762a6c75e11902faf7d26dad346695f4637e

需要注意的是,生成的私钥和公钥是以 Buffer 类型返回的,可以使用 toString() 方法转换为字符串,这里使用 hex 格式输出。公钥的输出格式默认为 compressed,可以通过修改 format 参数来改变。