Node.js 中的 crypto.createDiffieHellman() 方法


上述方法建立了一個 DiffieHellman 金鑰交換物件,藉助提供的素數和可選的特定生成器。生成器引數既可以儲存字串、數字,也可以儲存 Buffer 值。生成器的預設值為 2。

語法

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

引數

上述引數描述如下:

  • 素數– 將生成的素數位數。輸入值的型別為 number。

  • 素數編碼– 此引數定義素數字符串的編碼。可能輸入的型別為:字串、緩衝區、TypedArray 和 DataView。

  • 生成器– 用於生成交換金鑰物件的生成器。預設值:2。

  • 生成器編碼– 此引數定義生成器字串的編碼。

示例

建立一個名為 index.js 的檔案並複製以下程式碼片段。在建立檔案後,使用以下命令執行程式碼,如以下示例所示:

node index.js

程式程式碼

// 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'), "
Server generator: ", server.getGenerator().toString('hex')); console.log("Client prime: ", client.getPrime().toString('hex'), "
Client generator: ", client.getGenerator().toString('hex'));

輸出

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

由於伺服器和客戶端傳遞的引數相同。因此,生成的金鑰也相同。

示例

我們再看一個示例。

// 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
ode>> node index.js <Buffer 0f 6b> <Buffer 02>

更新日期:2021 年 5 月 20 日

272 條瀏覽量

開始你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.