當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js crypto.createDiffieHellman()用法及代碼示例


上述方法在提供的質數和可選的特定生成器的幫助下創建了一個 DiffieHellman key 交換對象。生成器參數可以保存字符串、數字或緩衝區值。生成器的默認值為 2。

用法

crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator], [generatorEncoding]

參數

上述參數描述如下 -

  • prime - 將生成的素數位數。輸入值的類型為 number。

  • primeEncoding - 此參數定義素數字符串的編碼。可能的輸入類型有:字符串、緩衝區、TypedArray 和 DataView。

  • generator - 用於生成交換 key 對象的生成器。默認值:2。

  • generatorEncoding - 此參數定義生成器字符串編碼。

示例

創建一個名為 index.js 的文件並複製以下代碼片段。創建文件後,使用以下命令運行此代碼,如下例所示 -

node index.js

Program Code

// crypto.createDiffieHelmmanGroup(prime, [primeEncoding],
[generator],[generatorEncoding])
// Demo Example

// Importing the crypto module
const crypto = require('crypto');

// Initializing and defining the prime value
const server = crypto.createDiffieHellman(20);

// Generating keys
server.generateKeys();

// Creating keys using server prime and generator
const client= crypto.createDiffieHellman(
   server.getPrime(), server.getGenerator());

client.generateKeys();

// Printing the server and client values
console.log("Server prime:", server.getPrime().toString('hex'), "\nServer generator:", server.getGenerator().toString('hex'));

console.log("Client prime:", client.getPrime().toString('hex'), "\nClient generator:", client.getGenerator().toString('hex'));

輸出

C:\home\node>> node index.js
Server prime:0fed0b
Server generator:02
Client prime:0fed0b
Client generator:02

由於為服務器和客戶端傳遞的參數是相同的。因此,生成的 key 也是相同的。

示例

讓我們再看一個例子。

// crypto.createDiffieHelmmanGroup(prime, [primeEncoding],
[generator],[generatorEncoding])
// Demo Example

// Importing the crypto module
const crypto = require('crypto');

// Initializing and defining the prime value
const val = crypto.createDiffieHellman(12);

// Printing prime value for abve DiffieHellman
console.log(val.getPrime());

// Printing the generator value
console.log(val.getGenerator())

輸出

C:\home\node>> node index.js
<Buffer 0f 6b>
<Buffer 02>

相關用法


注:本文由純淨天空篩選整理自Mayank Agarwal大神的英文原創作品 crypto.createDiffieHellman() Method in Node.js。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。