ecdh.getPublicKey() 方法是加密模塊內的 ECDH 類的內置應用程序編程接口,用於獲取指定編碼的橢圓曲線 Diffie-Hellman (ECDH) 對象的公鑰。可以使用 encoding 參數指定 key 的編碼,使用 format 參數指定格式。
必須首先使用 generateKeys() 方法生成 key ,然後才能使用公鑰檢索它們。
用法:
ecdh.getPublicKey( encoding, format )
參數:此方法接受上麵提到和下麵描述的兩個參數:
- encoding:這是一個字符串值,用於指定返回值的編碼。
- format:它是一個字符串,用於指定 key 的格式。該值可以是 ‘compressed’ 或 ‘uncompressed’。
返回值:它以指定的編碼返回橢圓曲線 DiffieHellman 公鑰。當沒有提供編碼時,它作為緩衝區返回,否則返回一個字符串。
範例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 public key for geekA
const geekAPublicKey = geekA.getPublicKey();
console.log("Public Key of Geek A is:", geekAPublicKey);
// Generate keys for geekB
const geekBPublicKey = geekB.getPublicKey();
console.log("Public Key of Geek B is:", geekBPublicKey);
輸出:
Public Key of Geek A is:<Buffer 04 00 47 18 d4 45 58 3c 8e 33 37 0d a4 ef 42 6a 06 a2 e6 bd a6 4d fe a7 97 e2 e7 55 ce 04 ae 60 71 cc f3 cc 94 83 0c 57 72 2d ad a2 95 ab 7b 97 62 77 … 83 more bytes>
Public Key of Geek B is:<Buffer 04 01 03 2c 43 12 21 39 d2 d5 e8 dc bf f7 c6 cf b2 a3 15 62 00 47 50 83 2e 22 ce 54 20 13 dd fa d2 0c 0f 31 fe b0 c5 1f af 65 a1 d0 b0 49 66 42 61 99 … 83 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 public key for geekA in base64
const geekAPublicKey =
geekA.getPublicKey('base64');
console.log(
"Public Key of Geek A is:", geekAPublicKey);
// Generate keys for geekB in hex in
// the compressed format
const geekBPublicKey =
geekB.getPublicKey('hex', 'compressed');
console.log(
"Public Key of Geek B is:", geekBPublicKey);
輸出:
Public Key of Geek A is:BAECc88Lu8XdEw2wUilULCKCcH0kQC79LilcYuJ92AuUICTIymP3cfStcD5GfkbF329l2wBZr4xwUgQXagyE6isnNAHMoXs2U4eo3NsCmSI2+BxSsJHYWKKim8nJQN8m7VGsQ4D0fpMGnwGFCjouO+V0vBB3ZVEkPfSWKjWytI0Wlf7kxA==
Public Key of Geek B is:02015ed9d8734b8568583926cb1fa5423d8607458fe236bc92c8652c3beb8c6940e673379b944f39c5549a802eabbe8b6723220b9eaa22293fee76591b9fabbb29d539
參考: https://nodejs.org/api/crypto.html#crypto_ecdh_getpublickey_encoding_format
相關用法
- 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.getPublicKey() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。