Node.js ecdh.getPrivateKey() 方法

Node.js ecdh.getPrivateKey() 方法

ecdh.getPrivateKey() 方法是 crypto 模块内 ECDH 类的内置应用程序接口,用于获取椭圆曲线迪菲-赫尔曼(ECDH)对象的私钥。可以使用 encoding 参数指定密钥的编码方式,使用 format 参数指定格式。

注意: 在使用私钥之前,必须先使用 generateKeys() 方法生成密钥。

语法:

ecdh.getPrivateKey( encoding )

参数: 此方法接受一个如上所述和下面描述的单个参数:

  • 编码: 这是一个字符串值,指定返回值的编码。这是一个可选参数。
  • 格式: 这是一个指定键的格式的字符串。值可以是’compressed’或’uncompressed’。这是一个可选参数。

返回值: 它返回指定编码的椭圆曲线Diffie-Hellman私钥。当未提供编码时,返回为缓冲区,否则返回字符串。

下面的示例演示了此方法:

示例1:

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);

输出:

Geek A的私钥是: Geek B的私钥是:

示例2:

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);

输出:

Geek A的私钥是:AXZvAlAJi4U5gL0Hj+kkriNlH45k+UkIz27MD0x4jsbKTjEUcU8vTUFvcw3aLHt4lit+V1Jp6fQ/4MH2dFNlfpu6   
Geek B的私钥是:0152465d0c729f46f1f78532fde54eb0218b491e5a87926120862b79de9084e7a78f604de4d4d9f4c31ab7819bf6cf8f0d75849781ad556fed947ad968e008c90940 

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程