diffieHellman.setPrivateKey() 方法是加密模块中 DiffieHellman (dh) 类的内置应用程序编程接口,用于设置 dh 对象的私钥。
用法:
diffieHellman.setPrivateKey(privateKey[, encoding])
参数:此方法接受以下两个参数:
- privateKey:它用于表示私钥。
- encoding:用于表示privateKey的编码。如果提供了编码,privateKey 应为 String,否则为 Buffer、TypedArray 或 DataView。
范例1:
index.js
// Node.js program to demonstrate the
// diffieHellman.setPrivateKey() Method
const crypto = require('crypto')
// Generate DH Key pair
crypto.generateKeyPair('dh',
{
primeLength:512,
publicKeyEncoding:{
type:'spki',
format:'der'
},
privateKeyEncoding:{
type:'pkcs8',
format:'der'
}
},
cb
)
function cb(err, publicKey, privateKey){
// Create Diffie-Hellman instance
const dh = crypto.createDiffieHellman(512)
// Set the dh's privateKey
dh.setPrivateKey(privateKey)
if( privateKey.equals(dh.getPrivateKey()) )
console.log("DH private Key is set successfully")
}
使用以下命令运行 index.js 文件
node index.js
输出:
DH private Key is set successfully
范例2:
index.js
// Node.js program to demonstrate the
// diffieHellman.setPrivateKey() Method
const crypto = require( 'crypto' )
crypto.generateKeyPair(
'dh',
{ primeLength:512 },
cb
)
function cb( err, publicKey, privateKey ){
// Export key from KeyObject
privateKey = privateKey.export( {type:'pkcs8', format:'der'} )
// Encode key in base64
privateKey = privateKey.toString('base64');
// Create Diffie-Hellman instance
const dh = crypto.createDiffieHellman( 512 )
// Set the dh's privateKey
dh.setPrivateKey( privateKey, 'base64' )
if( privateKey === dh.getPrivateKey('base64') )
console.log( "DH private Key is set successfully" )
}
使用以下命令运行 index.js 文件
node index.js
输出:
DH private Key is set successfully
参考: 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 charcoal()用法及代码示例
- Node.js GM blur()用法及代码示例
- Node.js GM sharpen()用法及代码示例
注:本文由纯净天空筛选整理自braktim99大神的英文原创作品 Node.js diffieHellman.setPrivateKey() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。