Node.js | crypto.getDiffieHellman () Метод

Опубликовано: 3 Августа, 2021

Метод crypto.getDiffieHellman () используется для создания предопределенного объекта обмена ключами DiffieHellmanGroup. Здесь предпочтительными группами являются 'modp1', 'modp2', 'modp5', которые определены в RFC 2412 и 'modp14', 'modp15', 'modp16', 'modp17', 'modp18', определенные в RFC 3526.

Синтаксис:

 crypto.getDiffieHellman (имя группы)

Параметры: этот метод принимает один параметр groupName, который имеет строковый тип.

Тип возвращаемого значения : возвращает объект обмена ключами DiffieHellmanGroup.

Примеры ниже иллюстрируют использование метода crypto.getDiffieHellman () в Node.js:

Пример 1:




// Node.js program to demonstrate the
// crypto.getDiffieHellman() method
// Including crypto module
const crypto = require( 'crypto' );
// Calling getDiffieHellman method
// with its parameter groupName
const diffiehellmangrp = crypto.getDiffieHellman( 'modp14' );
// Prints DiffieHellmanGroup key exchange object
console.log( "Key exchange object : " , diffiehellmangrp);

Выход:

 Объект обмена ключами: DiffieHellmanGroup 
{_handle: {verifyError: [Getter]}, verifyError: 0}

Пример 2:




// Node.js program to demonstrate the
// crypto.getDiffieHellman() method
// Including crypto module
const crypto = require( 'crypto' );
// Calling two getDiffieHellman method
// with its parameter, groupName
const diffiehellmangrp1 = crypto.getDiffieHellman( 'modp14' );
const diffiehellmangrp2 = crypto.getDiffieHellman( 'modp14' );
// Generating keys
diffiehellmangrp1.generateKeys();
diffiehellmangrp2.generateKeys();
// Computing secret
const diffiehellmangrp1sc = diffiehellmangrp1
.computeSecret(diffiehellmangrp2.getPublicKey(), null , 'hex' );
const diffiehellmangrp2sc = diffiehellmangrp2
.computeSecret(diffiehellmangrp1.getPublicKey(), null , 'hex' );
// Checking if both the secrets are same or not
console.log(diffiehellmangrp1sc === diffiehellmangrp2sc);

Выход:

 правда

Ссылка: https://nodejs.org/api/crypto.html#crypto_crypto_getdiffiehellman_groupname