当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js ecdh.generateKeys()用法及代码示例


ecdh.generateKeys() 方法是加密模块中 ECDH 类的内置应用程序编程接口,用于生成椭圆曲线 Diffie-Hellman (ECDH) 对象的私钥和公钥值。它只返回给定格式和编码的公钥。

用法:

ecdh.generateKeys( encoding, format )

参数:此方法接受上面提到和下面描述的两个参数:

  • encoding:这是一个字符串值,用于指定返回值的编码。
  • format:它是一个字符串,用于指定 key 的格式。该值可以是 ‘compressed’ 或 ‘uncompressed’。

返回值:它以指定的编码返回椭圆曲线 DiffieHellman 公钥。当没有提供编码时,它作为一个缓冲区返回,否则返回一个字符串。



下面的例子演示了这种方法:

范例1:

Javascript


const crypto = require('crypto');
  
// Generate an ECDH object for geekA
const geek = crypto.createECDH('secp521r1');
  
// Generate keys for geek and return
// the public key
const geekAPublicKey = geek.generateKeys();
  
console.log(
  "Public Key of Geek A is:", geekAPublicKey);
  
// Get the private key of geek
const geekAPrivateKey = geek.getPrivateKey();
console.log(
  "Private Key of Geek A is:", geekAPrivateKey);

输出:

Public Key of Geek A is:<Buffer 04 00 89 09 8f e4 14 ad d9 77 1d a4 8b 2b 82 a6 2c 64 9e 0c 37 75 e3 db 7d 92 3e 8d a9 dc 66 c8 c9 5a bb 8b 4d de 27 b7 9a 26 c4 59 78 c6 f9 e7 36 d9 … 83 more bytes>
Private Key of Geek A is:<Buffer 01 8f af 82 49 30 70 e0 47 1f 4f 46 7d d3 99 50 8b 14 47 97 04 9d 3e 46 c7 b1 8e d1 c1 ad 6f de ea c7 a0 bc a8 af f2 c3 e0 46 df 74 bf 07 a3 36 a2 ac … 16 more bytes>

范例2:

Javascript


const crypto = require('crypto');
  
// Generate an ECDH object for geekA
const geekA = crypto.createECDH('secp521r1');
  
// Generate keys for geekA in base64 encoding
const geekAkey =
  geekA.generateKeys('base64');
  
console.log(
  "Public Key of Geek A is:", geekAkey);
  
// Generate an ECDH object for geekB
const geekB = crypto.createECDH('secp521r1');
  
// Generate keys for geekB in base64
// encoding and compressed
const geekBkey =
  geekB.generateKeys('base64', 'compressed');
  
console.log(
  "Public Key of Geek B is:", geekBkey);

输出:

Public Key of Geek A is:BAHbKH6Uv0hAZPhQer+bVA/GC8VRqTf0LTLpNWmWeOPh+pDkLhhHnE9/XYI2pjDQ1Nhum/GeHkOEJKSMEaD51Q0EhgE2y+IiHb2gSluy7ho0OosMLFrlM8YgPaXNV6skBqsbNGlYh/HEBIlilzNfGUrNsvsh4RuI0usEOh/v6NFrpEIfUA==
Public Key of Geek B is:AwCz/x81YIdVtPyy5B3YKwgR3hgzOXrFZsXi3M2WFcvRL2yh0VKza0/b8Mw1Z/p4Pnl1gGO2JMUfLNI4FFvzaxb9Og==

参考: https://nodejs.org/api/crypto.html#crypto_ecdh_generatekeys_encoding_format




相关用法


注:本文由纯净天空筛选整理自sayantanm19大神的英文原创作品 Node.js ecdh.generateKeys() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。