ecdh.getPrivateKey() 方法是加密模塊內的 ECDH 類的內置應用程序編程接口,用於設置橢圓曲線 Diffie-Hellman (ECDH) 對象的私鑰。可以使用 encoding 參數指定 key 的編碼。
如果私鑰對指定曲線無效,則會引發錯誤。使用此方法設置私鑰會在ECDH對象中自動生成並設置對應的公鑰。
用法:
ecdh.setPrivateKey( privateKey, encoding )
參數:此方法接受上麵提到和下麵描述的兩個參數:
- privateKey:這是需要設置的私鑰。它可以以字符串、ArrayBuffer、Buffer、TypedArray 或 DataView 的格式給出。
- encoding:在編碼字符串值中指定返回值的編碼。它是一個可選參數。
返回值:它以指定的編碼返回橢圓曲線 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');
// Create a private key of geekA
geekA.setPrivateKey("thisisasecretkey!");
// Create a private key of geekB
geekB.setPrivateKey("thisisanotherkey!");
// Get the private keys of both the geeks
let geekAPrivateKey = geekA.getPrivateKey();
let geekBPrivateKey = geekB.getPrivateKey();
console.log("Private Key of Geek A is:",
geekAPrivateKey);
console.log("Private Key of Geek B is:",
geekBPrivateKey);
輸出:
Private Key of Geek A is:<Buffer 74 68 69 73 69 73 61 73 65 63 72 65 74 6b 65 79 21>
Private Key of Geek B is:<Buffer 74 68 69 73 69 73 61 6e 6f 74 68 65 72 6b 65 79 21>
範例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');
// Create a private key of geekA
// with "hello" in hex format
geekA.setPrivateKey("68656c6c6f", "hex");
// Create a private key of geekB
// with "world" in base64 format
geekB.setPrivateKey("d29ybGQ=", "base64");
// Get the private keys of both the geeks
// in 'utf-8' encoding
let geekAPrivateKey =
geekA.getPrivateKey('utf-8');
let geekBPrivateKey =
geekB.getPrivateKey('utf-8');
console.log("Private Key of Geek A is:",
geekAPrivateKey);
console.log("Private Key of Geek B is:",
geekBPrivateKey);
輸出:
Private Key of Geek A is:hello Private Key of Geek B is:world
參考: https://nodejs.org/api/crypto.html#crypto_ecdh_setprivatekey_privatekey_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()用法及代碼示例
注:本文由純淨天空篩選整理自sayantanm19大神的英文原創作品 Node.js ecdh.setPrivateKey() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。