Explicar el uso del módulo criptográfico en Node.js

En este artículo, exploraremos el módulo criptográfico y cuáles son sus usos en Node.js. NodeJS admite una gran cantidad de módulos de terceros. Estos módulos se pueden utilizar para realizar diferentes tipos de tareas. El módulo Crypto también es un módulo de terceros que se puede importar y usar en NodeJS. Este módulo se puede utilizar para cifrar, descifrar o codificar cualquier tipo de datos. Este cifrado y descifrado básicamente ayudan a proteger y agregar una capa de autenticación a los datos. El principal caso de uso del módulo criptográfico es convertir el texto legible sin formato a un formato cifrado y descifrarlo cuando sea necesario.

Crypto y ByCrypto son los dos módulos de terceros diferentes que se pueden utilizar para la protección de datos confidenciales. La principal diferencia entre Crypto y ByCrypto es que ByCrypto proporciona un hash más potente que el módulo Crypto. 

El texto sin formato está en formato legible por humanos y generalmente consta de alfabeto y palabras. Después de cifrar este texto con el módulo Crypto, se cambiará a un formato legible por computadora. Por ejemplo: algo como esto: sdfasc1asT67W2sqWwsdfsadf

Mecanismo de criptografía:

Hashing: en este mecanismo, una serie de texto sin formato se convierte básicamente en texto cifrado. Este es un algoritmo criptográfico unidireccional ya que no podemos volver a convertir este texto cifrado en texto sin formato. Este método se usa básicamente durante la autenticación del usuario de los Sistemas al proporcionar contraseñas confidenciales. Dado que las contraseñas no se pueden almacenar, estos textos cifrados se almacenarán en su lugar. Algunos algoritmos hash populares son: Message Digest 5 (MD5), RSA, SHA, etc. son algoritmos ampliamente utilizados para hash.

Cifrado y descifrado: en este mecanismo, una serie de texto sin formato se convierte en texto cifrado con la ayuda de una clave secreta y luego se descifra con la misma clave. El texto cifrado no se puede convertir al texto original sin una clave secreta. Este algoritmo toma la entrada de texto encriptado y la clave secreta que devolverá el texto original como salida. Este mecanismo se utiliza principalmente en los sistemas de mensajería para evitar que la red tenga cualquier tipo de fuga de datos. Algunos mecanismos populares son AES, DES, etc.

Características: 

  • Fácil de usar
  • Algoritmos ampliamente utilizados con múltiples opciones para cifrar y descifrar
  • Código más limpio y consistente
  • Se puede integrar fácilmente con código Javascript en NodeJS

Módulo de instalación:

npm install crypto-js --save

Ejemplo 1: uso de SHA256 desde el módulo crypto-js.

Javascript

// Importing module
var SHA256 = require("crypto-js/sha256");
  
// Initializing the original data
var originalData = "Welcome To GeeksForGeeks"
  
// Hashing the Original data
var hasheddata = SHA256(originalData).toString()
  
// Printing hashed data
console.log("Hashed Data is: " + hasheddata)

Producción: 

Hashed Data is: ecf0cc86124bb4191a1a10f48b1eb2a7b3b3c7aa8c38ac8de8ad6c0a1502b985

Ejemplo 2: uso del módulo criptográfico para el cifrado y descifrado de los datos. Podemos usar una sola clave para el cifrado y luego usar la misma clave para el descifrado también.

Javascript

// Importing the crypto module
const crypto=require("crypto-js")
  
// Initializing the original data
var data = "This is the data that need to be encrypted"
  
// Defining the secret key
var key = "pwd@1234"
  
// Encrypting the data using the password key
var encrypted = crypto.AES.encrypt(data, key).toString();
console.log("Encrypted data -- ")
  
// Printing the encrypted data
console.log(encrypted)
console.log("Decrypted data -- ")
  
// Decrypting the data using the same password key
var decrypted = crypto.AES.decrypt(encrypted, key)
  .toString(crypto.enc.Utf8)
console.log(decrypted)

Producción:

Referencia: https://www.npmjs.com/package/crypto-js

Publicación traducida automáticamente

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