Node.js – diffieHellman.getGenerator() 方法


diffieHellman.getGenerator() 方法以指定編碼返回 Diffie-Hellman 生成器。如果傳遞了編碼,則返回一個字串,否則會返回一個緩衝區。

語法

diffieHellman.getGenerator([encoding])

引數

  • encoding - 此引數指定返回值的編碼。

示例 1

建立一個名為 "generator.js" 的檔案並複製以下程式碼。建立檔案後,使用命令 "node generator.js" 執行此程式碼,如下例所示

// diffieHellman.getPrime() Demo Example

// Importing cryptoDiffieHellman from the crypto module
const { createDiffieHellman } = require('crypto');

// Initializing the diffieHellman object
const dh = createDiffieHellman(512);

// Generate DiffieHellman's Generator

// Defining generator
let dhGenerator = dh.getGenerator()
console.log('Buffer (when encoding is not specified) : ', dhGenerator)

// Encoding specified
// Return String
dhGenerator = dh.getGenerator('base64')
console.log('String (when encoding is specified) : ', dhGenerator)

輸出

Buffer (when encoding is not specified) : <Buffer 02>
String (when encoding is specified) : Ag==

示例 2

讓我們看一個示例。

// diffieHellman.getGenerator() Demo Example

// Importing cryptoDiffieHellman from the crypto module
const { createDiffieHellman } = require('crypto');

// Generating keys for 'a'
const a = createDiffieHellman(512);

// Generating prime for 'a'
const primeA = a.getPrime();

// Generating a's generator
const generatorA = a.getGenerator()

// Generating a's generatorKeys
const keyA = a.generateKeys();

// Generating keys for b
const b = createDiffieHellman( primeA, generatorA );

// Generating prime for b
const primeB = b.getPrime();

// Generating b's generator
const generatorB = b.getGenerator()

// Generating b's generatorKeys
const keyB = b.generateKeys();

// Exchanging the secret
const secretA = a.computeSecret(keyB);
const secretB = b.computeSecret(keyA);

let isSymmetric =
   secretA.toString('hex') == secretB.toString('hex')
console.log('Are keys Symmetric : ${ isSymmetric }')

輸出

Are keys Symmetric : ${ isSymmetric }

更新於:24-11-2021

73 瀏覽次數

職業生涯全面提升

完成課程認證

開始學習
廣告
© . All rights reserved.