ecdh.getPrivateKey() 方法是加密模块中 ECDH 类的内置应用程序编程接口,用于获取椭圆曲线 Diffie-Hellman (ECDH) 对象的私钥。可以使用 encoding 参数指定 key 的编码,使用 format 参数指定格式。
注意:必须首先使用 generateKeys() 方法生成 key ,然后才能使用私钥检索它们。
用法:
ecdh.getPrivateKey( encoding )
参数:此方法接受如上所述和以下描述的单个参数:
- encoding:这是一个字符串值,用于指定返回值的编码。它是一个可选参数。
- format:它是一个字符串,用于指定 key 的格式。该值可以是 ‘compressed’ 或 ‘uncompressed’。它是一个可选参数。
返回值:它以指定的编码返回椭圆曲线 DiffieHellman 私钥。当没有提供编码时,返回一个Buffer,否则返回一个String。
下面的例子演示了这种方法:
范例1:
Javascript
const crypto = require('crypto');
// Generate an ECDH object for geekA
const geekA = crypto.createECDH('secp521r1');
// Generate an ECDH object for geekB
const geekB = crypto.createECDH('secp521r1');
// Generate the keys for both the geeks
geekA.generateKeys();
geekB.generateKeys();
// Get the private key for geekA
const geekAprivateKey = geekA.getPrivateKey();
console.log("Private Key of Geek A is:",
geekAprivateKey);
// Get the private key for geekB
const geekBprivateKey = geekB.getPrivateKey();
console.log("Private Key of Geek B is:",
geekBprivateKey);
输出:
Private Key of Geek A is:<Buffer b1 cd 2f e7 52 b4 8b a9 fe 2d 1c d8 6d 35 d9 7b 2f 2b 48 27 40 ac 35 3a 34 3a 63 5b cd 28 d0 5f 38 9b d6 ad 6c d3 a7 6e ed d5 9e 84 e6 e6 83 84 c4 cb … 15 more bytes>
Private Key of Geek B is:<Buffer 01 2f b2 ea a9 65 23 27 65 be ab 68 3a 6e 88 6e db c4 6a 65 9d 52 b7 9e 69 39 b5 5f 3a 87 55 3d f6 62 51 94 5e 24 48 62 96 dc 3b 4f 10 d2 30 99 03 4c … 16 more bytes>
范例2:
Javascript
const crypto = require('crypto');
// Generate an ECDH object for geekA
const geekA = crypto.createECDH('secp521r1');
// Generate an ECDH object for geekB
const geekB = crypto.createECDH('secp521r1');
// Generate the keys for both the geeks
geekA.generateKeys();
geekB.generateKeys();
// Get the private key for geekA in base64
const geekAPrivateKey =
geekA.getPrivateKey('base64');
console.log("Private Key of Geek A is:",
geekAPrivateKey);
// Get the private key for geekB in hex
const geekBPrivateKey =
geekB.getPrivateKey('hex');
console.log("Private Key of Geek B is:",
geekBPrivateKey);
输出:
Private Key of Geek A is:AXZvAlAJi4U5gL0Hj+kkriNlH45k+UkIz27MD0x4jsbKTjEUcU8vTUFvcw3aLHt4lit+V1Jp6fQ/4MH2dFNlfpu6
Private Key of Geek B is:0152465d0c729f46f1f78532fde54eb0218b491e5a87926120862b79de9084e7a78f604de4d4d9f4c31ab7819bf6cf8f0d75849781ad556fed947ad968e008c90940
参考: https://nodejs.org/api/crypto.html#crypto_ecdh_getprivatekey_encoding
相关用法
- Node.js console.timeLog()用法及代码示例
- Node.js x509.toLegacyObject()用法及代码示例
- Node.js fs.fsyncSync()用法及代码示例
- Node.js process.nextTick()用法及代码示例
- Node.js GM drawLine()用法及代码示例
- Node.js GM drawArc()用法及代码示例
- Node.js GM drawPolyline()用法及代码示例
- Node.js GM drawBezier()用法及代码示例
注:本文由纯净天空筛选整理自sayantanm19大神的英文原创作品 Node.js ecdh.getPrivateKey() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。