📅  最后修改于: 2023-12-03 14:44:38.385000             🧑  作者: Mango
在 Node.js 中,crypto
模块提供了加密和解密的功能,其中 crypto.createECDH()
方法可以创建一个 ECDH(Elliptic Curve Diffie Hellman) 对象,ecdh.getPrivateKey()
方法可以用于获取 ECDH 实例的私钥,下面我们就详细介绍一下 ecdh.getPrivateKey()
的方法用法和注意事项。
ecdh.getPrivateKey([encoding][, format])
<string>
可选参数,表示传入的私钥编码格式,默认为 hex
。<string>
可选参数,表示私钥输出的格式,可以是 'der'
、'pem'
或者 'base64'
中的任何一个,缺省值为 'hex'
。返回一个包含私钥的 Buffer
对象。
const crypto = require('crypto');
const ecdh = crypto.createECDH('secp256k1');
ecdh.generateKeys();
const privateKey = ecdh.getPrivateKey();
console.log(privateKey.toString('hex'));
上述代码创建了一个 ECDH 对象,随后调用了 generateKeys()
方法生成一对密钥对,最后调用 getPrivateKey()
方法获取了私钥,并将私钥转换为十六进制后进行了输出。
getPrivateKey()
方法之前必须先调用 generateKeys()
方法,否则将无法获取私钥。getPrivateKey()
方法获取的私钥是 Buffer
类型,可以使用 toString()
方法将其转换为所需的格式进行输出。hex
编码格式输出,如果需要输出其他格式,可以传递第二个参数指定输出格式。secp256k1
、secp384r1
和 secp521r1
。