Método Node.js ecdh.generateKeys()

El método ecdh.generateKeys() es una interfaz de programación de aplicaciones incorporada de clase ECDH dentro del módulo criptográfico que se utiliza para generar valores de clave pública y privada del objeto Elliptic Curve Diffie-Hellman (ECDH). Solo devuelve la clave pública en el formato y la codificación proporcionados.

Sintaxis:

ecdh.generateKeys( encoding, format )

Parámetros: este método acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:

  • codificación: este es un valor de string que especifica la codificación del valor devuelto.
  • formato: Es una string que especifica el formato de las claves. El valor puede ser ‘comprimido’ o ‘descomprimido’.

Valor de retorno: Devuelve la clave pública DiffieHellman de curva elíptica en la codificación especificada. Cuando no se proporciona la codificación, se devuelve como un búfer; de lo contrario, se devuelve una string.

Los siguientes ejemplos demuestran este método:

Ejemplo 1:

Javascript

const crypto = require('crypto');
  
// Generate an ECDH object for geekA
const geek = crypto.createECDH('secp521r1');
  
// Generate keys for geek and return
// the public key
const geekAPublicKey = geek.generateKeys();
  
console.log(
  "Public Key of Geek A is:", geekAPublicKey);
  
// Get the private key of geek
const geekAPrivateKey = geek.getPrivateKey();
console.log(
  "Private Key of Geek A is:", geekAPrivateKey);

Producción:

La clave pública de Geek A es: <Buffer 04 00 89 09 8f e4 14 ad d9 77 1d a4 8b 2b 82 a6 2c 64 9e 0c 37 75 e3 db 7d 92 3e 8d a9 dc 66 c8 c9 5a bb 8b 4d de 27 b7 9a 26 c4 59 78 c6 f9 e7 36 d9 … 83 bytes más>
La clave privada de Geek A es: <Buffer 01 8f af 82 49 30 70 e0 47 1f 4f 46 7d d3 99 50 8b 14 47 97 04 9d 3e 46 c7 b1 8e d1 c1 ad 6f de ea c7 a0 bc a8 af f2 c3 e0 46 df 74 bf 07 a3 36 a2 ac … 16 bytes más>

Ejemplo 2:

Javascript

const crypto = require('crypto');
  
// Generate an ECDH object for geekA
const geekA = crypto.createECDH('secp521r1');
  
// Generate keys for geekA in base64 encoding
const geekAkey =
  geekA.generateKeys('base64');
  
console.log(
  "Public Key of Geek A is:", geekAkey);
  
// Generate an ECDH object for geekB
const geekB = crypto.createECDH('secp521r1');
  
// Generate keys for geekB in base64
// encoding and compressed
const geekBkey =
  geekB.generateKeys('base64', 'compressed');
  
console.log(
  "Public Key of Geek B is:", geekBkey);

Producción:

Public Key of Geek A is: BAHbKH6Uv0hAZPhQer+bVA/GC8VRqTf0LTLpNWmWeOPh+pDkLhhHnE9/XYI2pjDQ1Nhum/GeHkOEJKSMEaD51Q0EhgE2y+IiHb2gSluy7ho0OosMLFrlM8YgPaXNV6skBqsbNGlYh/HEBIlilzNfGUrNsvsh4RuI0usEOh/v6NFrpEIfUA==
Public Key of Geek B is: AwCz/x81YIdVtPyy5B3YKwgR3hgzOXrFZsXi3M2WFcvRL2yh0VKza0/b8Mw1Z/p4Pnl1gGO2JMUfLNI4FFvzaxb9Og==

Referencia: https://nodejs.org/api/crypto.html#crypto_ecdh_generatekeys_encoding_format

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *