El método crypto.getDiffieHellman() se utiliza para crear un objeto de intercambio de claves DiffieHellmanGroup predefinido. Aquí, los grupos favorecidos son ‘modp1’, ‘modp2’, ‘modp5’, que se definen en RFC 2412 y ‘modp14’, ‘modp15’, ‘modp16’, ‘modp17’, ‘modp18’, definidos en RFC 3526.
Sintaxis:
crypto.getDiffieHellman( groupName )
Parámetros: este método acepta un solo parámetro groupName que es de tipo string.
Tipo de retorno: Devuelve el objeto de intercambio de claves DiffieHellmanGroup .
Los siguientes ejemplos ilustran el uso del método crypto.getDiffieHellman() en Node.js:
Ejemplo 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);
Producción:
Key exchange object : DiffieHellmanGroup { _handle: { verifyError: [Getter] }, verifyError: 0 }
Ejemplo 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);
Producción:
true
Referencia: https://nodejs.org/api/crypto.html#crypto_crypto_getdiffiehelman_groupname
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA