Saltar al contenido

Cómo cifrar y descifrar en Angular 6

Solución:

En uno de nuestros proyectos, hemos utilizado la biblioteca ‘crypto-js’. http://github.com/brix/crypto-js

import * as CryptoJS from 'crypto-js';

encryptData(data) {

    try {
      return CryptoJS.AES.encrypt(JSON.stringify(data), this.encryptSecretKey).toString();
    } catch (e) {
      console.log(e);
    }
  }

  decryptData(data) {

    try {
      const bytes = CryptoJS.AES.decrypt(data, this.encryptSecretKey);
      if (bytes.toString()) {
        return JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
      }
      return data;
    } catch (e) {
      console.log(e);
    }
  }

La solución técnica para encriptar cosas en el lado del cliente es probablemente usar alguna biblioteca de terceros. Citar tales bibliotecas conduce a respuestas obstinadas y eso no es muy deseable aquí.

Sin embargo, si el caso de uso es ocultar algunos datos de backend del usuario (que parece ser el caso cuando leí su pregunta), no tiene sentido cifrar, ya que la clave se almacenaría en código JavaScript o se enviaría a través de la red. . En ambos casos es imposible ofuscarlo.

Algunos ejemplos de casos de uso válidos para el cifrado del lado del cliente:

  • Permita que el usuario encripte cosas con una clave de su propiedad.
  • Use alguna clave pública para cifrar un mensaje para un sistema que posee la clave privada correspondiente

Aunque no es perfecto window.btoa() proporcionará básico base-64 codificación, para evitar que todos lean los datos del usuario. Esta podría ser tu solución más rápida. Como el cifrado en el lado del cliente no está asegurado, porque todo lo que llega al navegador puede ser visto por el usuario final (su código o llamada Ajax, etc.), incluso su clave de cifrado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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