Función Node.js crypto.timingSafeEqual()

Node.js es un entorno de tiempo de ejecución de JavaScript back-end de código abierto y multiplataforma que utiliza el motor V8 para ejecutar código JavaScript fuera de un navegador web. Node.js permite a los desarrolladores utilizar JavaScript para crear herramientas de línea de comandos y secuencias de comandos del lado del servidor, lo que implica ejecutar secuencias de comandos en el servidor antes de enviar la página al navegador del usuario. La funcionalidad criptográfica se proporciona a través del módulo criptográfico , que incluye contenedores para los métodos hash, HMAC, cifrado, decodificación, firma y verificación de OpenSSL.

La función crypto.timingSafeEqual() se usa para determinar si dos variables son iguales sin exponer la información de tiempo que puede permitir que un atacante adivine uno de los valores. Un algoritmo de tiempo constante lo sustenta.

Sintaxis:

crypto.timingSafeEqual(a, b)

Parámetros:

  • a: Es una variable que debe ser Buffer, TypedArray o DataView. 
  • b: Es una variable que debe ser Buffer, TypedArray o DataView y debe tener la misma longitud que un .

Valor devuelto: verdadero si a es igual a b, de lo contrario falso.

Ejemplo 1:

Javascript

import crypto from 'crypto';
  
const a = Buffer.alloc(5, 'b');
const b = Buffer.alloc(5, 'b');
  
let res = crypto.timingSafeEqual(a, b);
console.log(res);

Producción:

true

Ejemplo 2:

Javascript

import crypto from 'crypto';
  
const a = new Int8Array(8);
const b = new Int8Array(a);
a[0] = 2;
b[1] = 5;
  
let res = crypto.timingSafeEqual(a, b);
console.log(res);

Producción:

false

Referencia: https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_crypto_timingsafeequal_a_b

Publicación traducida automáticamente

Artículo escrito por aayushmohansinha 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 *