Node.js diffieHellman.getGenerator() 方法

Node.js diffieHellman.getGenerator() 方法

diffieHellman.getGenerator() 方法是加密模块中diffieHellman类的一个内置应用编程接口,用于获取DiffieHellman(dh)对象的生成器值。

语法:

diffieHellman.getGenerator([encoding])

参数: 此方法接受编码作为参数。

返回值: 返回指定编码的DiffieHellman生成器值。如果没有提供编码,则返回缓冲区;否则返回字符串。

示例1:

index.js

// Node.js program to demonstrate the 
// diffieHellman.getGenerator() method 
  
// Destructure createDiffieHellman method from crypto 
const { createDiffieHellman } = require('crypto'); 
  
// Instances of the DiffieHellman class 
const dh = createDiffieHellman(512); 
  
// Generate dh's Generator 
  
// No encoding specified 
// Return Buffer 
let dhGenerator = dh.getGenerator() 
console.log('\nIs Buffer return ( encoding not specified ) : ' + 
    Buffer.isBuffer(dhGenerator)) // true 
console.log('Return value :') 
console.log(dhGenerator) 
  
// Encoding specified  
// Return String 
dhGenerator = dh.getGenerator('base64') 
console.log('\nIs Buffer return ( encoding specified ): ' + 
    Buffer.isBuffer(dhGenerator)) // true 
console.log('Return value :') 
console.log(dhGenerator) 

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

node index.js

输出:

Is Buffer return ( encoding not specified ) : true
Return value :
<Buffer 02>

Is Buffer return ( encoding specified ): false
Return value :
Ag==

示例2:

index.js

// Node.js program to demonstrate the 
// diffieHellman.getGenerator() method 
  
// Destructure createDiffieHellman method from crypto 
const { createDiffieHellman } = require('crypto'); 
  
// Generate Alice's keys... 
const alice = createDiffieHellman(512); 
  
// Generate Alices's Prime 
const alicePrime = alice.getPrime(); 
  
// Generate Alice's Generator 
const aliceGenerator =  alice.getGenerator() 
  
// Generate Alice's Key 
const aliceKey = alice.generateKeys(); 
  
// Generate Bob's keys... 
const bob = createDiffieHellman( alicePrime, aliceGenerator ); 
  
// Generate Bobs's Prime 
const bobPrime = bob.getPrime(); 
  
// Generate Bob's Generator 
const bobGenerator =  bob.getGenerator() 
  
// Generate Bob's Key 
const bobKey = bob.generateKeys(); 
  
// Exchange and generate the secret... 
const aliceSecret = alice.computeSecret(bobKey); 
const bobSecret = bob.computeSecret(aliceKey); 
  
let isSymmetric = aliceSecret.toString('hex') == bobSecret.toString('hex') 
  
console.log( `Is Symmetric key generation  
              successful : ${ isSymmetric }` ); // true

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

node index.js

输出:

Is Symmetric key generation successful : true

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程