Método Node.js ecdh.getPublicKey()

El método ecdh.getPublicKey() es una interfaz de programación de aplicaciones incorporada de clase ECDH dentro del módulo criptográfico que se utiliza para obtener la clave pública del objeto Elliptic Curve Diffie-Hellman (ECDH) en la codificación especificada. La codificación de la clave se puede especificar usando el parámetro de codificación y el formato usando el parámetro de formato .

Las claves deben generarse primero mediante el método generateKeys() antes de poder recuperarlas mediante la clave pública.

Sintaxis:

ecdh.getPublicKey( 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.

 

Ejemplo 1: Los siguientes ejemplos demuestran este método:

Javascript

const crypto = require('crypto');
  
// Generate an ECDH object for geekA
const geekA = crypto.createECDH('secp521r1');
  
// Generate an ECDH object for geekB
const geekB = crypto.createECDH('secp521r1');
  
// Generate the keys for both the geeks
geekA.generateKeys();
geekB.generateKeys();
  
// Get the public key for geekA
const geekAPublicKey = geekA.getPublicKey();
  
console.log("Public Key of Geek A is:", geekAPublicKey);
  
// Generate keys for geekB
const geekBPublicKey = geekB.getPublicKey();
  
console.log("Public Key of Geek B is:", geekBPublicKey);

Producción:

La clave pública de Geek A es: <Buffer 04 00 47 18 d4 45 58 3c 8e 33 37 0d a4 ef 42 6a 06 a2 e6 bd a6 4d fe a7 97 e2 e7 55 ce 04 ae 60 71 cc f3 cc 94 83 0c 57 72 2d ad a2 95 ab 7b 97 62 77 … 83 bytes más>
La clave pública de Geek B es: <Buffer 04 01 03 2c 43 12 21 39 d2 d5 e8 dc bf f7 c6 cf b2 a3 15 62 00 47 50 83 2e 22 ce 54 20 13 dd fa d2 0c 0f 31 fe b0 c5 1f af 65 a1 d0 b0 49 66 42 61 99 … 83 bytes más>

Ejemplo 2:

Javascript

const crypto = require('crypto');
  
// Generate an ECDH object for geekA
const geekA = crypto.createECDH('secp521r1');
  
// Generate an ECDH object for geekB
const geekB = crypto.createECDH('secp521r1');
  
// Generate the keys for both the geeks
geekA.generateKeys();
geekB.generateKeys();
  
// Get the public key for geekA in base64
const geekAPublicKey = 
  geekA.getPublicKey('base64');
  
console.log(
  "Public Key of Geek A is:", geekAPublicKey);
  
// Generate keys for geekB in hex in
// the compressed format
const geekBPublicKey =
  geekB.getPublicKey('hex', 'compressed');
  
console.log(
  "Public Key of Geek B is:", geekBPublicKey);

Producción:

Public Key of Geek A is: BAECc88Lu8XdEw2wUilULCKCcH0kQC79LilcYuJ92AuUICTIymP3cfStcD5GfkbF329l2wBZr4xwUgQXagyE6isnNAHMoXs2U4eo3NsCmSI2+BxSsJHYWKKim8nJQN8m7VGsQ4D0fpMGnwGFCjouO+V0vBB3ZVEkPfSWKjWytI0Wlf7kxA==
Public Key of Geek B is: 02015ed9d8734b8568583926cb1fa5423d8607458fe236bc92c8652c3beb8c6940e673379b944f39c5549a802eabbe8b6723220b9eaa22293fee76591b9fabbb29d539

Referencia: https://nodejs.org/api/crypto.html#crypto_ecdh_getpublickey_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 *