当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js diffieHellman.setPublicKey()用法及代码示例


diffieHellman.setPublicKey() 方法是加密模块中 DiffieHellman (dh) 类的内置应用程序编程接口,用于设置 dh 对象的公钥。

用法:

diffieHellman.setPublicKey(publicKey[, encoding])

参数:此方法接受以下两个参数:

  • publicKey:它用于表示私钥。
  • encoding:用于表示publicKey的编码。如果提供了编码,则 publicKey 应为字符串,否则为 Buffer、TypedArray 或 DataView。


范例1:

index.js


// Node.js program to demonstrate the
// diffieHellman.setPublicKey() Method
const crypto = require('crypto')
  
crypto.generateKeyPair('dh',
    {
        primeLength:512,
        publicKeyEncoding:{
            type:'spki',
            format:'der'
        },
        publicKeyEncoding:{
            type:'pkcs8',
            format:'der'
        }
    },
    cb
)
  
function cb(err, publicKey, publicKey) {
    // Create Diffie-Hellman instance
    const dh = crypto.createDiffieHellman(512)
    // Set the dh's publicKey
    dh.setPublicKey(publicKey)
  
    if (publicKey.equals(dh.getPublicKey()))
        console.log("DH public Key is set successfully")
}

使用以下命令运行 index.js 文件

node index.js

输出:

DH public Key is set successfully

范例2:

index.js


// Node.js program to demonstrate the
// diffieHellman.setPublicKey() Method
const crypto = require('crypto')
  
crypto.generateKeyPair(
    'dh',
    { primeLength:512 },
    cb
)
  
function cb(err, publicKey, publicKey) {
    // Export key from KeyObject
    publicKey = publicKey.export({ type:'spki', format:'der' })
    // Encode key in base64
    publicKey = publicKey.toString('base64');
    // Create Diffie-Hellman instance
    const dh = crypto.createDiffieHellman(512)
    // Set the dh's publicKey
    dh.setPublicKey(publicKey, 'base64')
  
    if (publicKey === dh.getPublicKey('base64'))
        console.log("DH public Key is set successfully")
}

使用以下命令运行 index.js 文件

node index.js

输出:

DH public Key is set successfully

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




相关用法


注:本文由纯净天空筛选整理自braktim99大神的英文原创作品 Node.js diffieHellman.setPublicKey() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。