當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。