Saltar al contenido

Cifrar con CryptoJS y descifrar con PHP

Si te encuentras con alguna parte que no comprendes puedes dejarlo en la sección de comentarios y te ayudaremos lo más rápido posible.

Solución:

Hola,

para lograr esto se debe considerar el uso de la key y iv con 32 dígitos hexadecimales cada uno, tuve que resolver exactamente esto haciendo mis cosas y así es como funciona





Y ahora recibiendo y descifrando en PHP


Con esto tendremos de vuelta el “Hola, esto se verá descifrado más adelante” 🙂

Aquí hay una solución basada en este comentario, usando openssl_decrypt de PHP.

El JavaScript parte (desarrollo con NodeJS para navegadores): primero, instale CryptoJS con npm install crypto-js, luego su código JS:

import aes from 'crypto-js/aes'
import encHex from 'crypto-js/enc-hex'
import padZeroPadding from 'crypto-js/pad-zeropadding'

// message to encrypt
let msg = "Hello world";

// the key and iv should be 32 hex digits each, any hex digits you want, but it needs to be 32 on length each
let key = encHex.parse("0123456789abcdef0123456789abcdef");
let iv =  encHex.parse("abcdef9876543210abcdef9876543210");

// encrypt the message
let encrypted = aes.encrypt(msg, key, iv:iv, padding:padZeroPadding).toString();

// and finally, send this "encrypted" string to your server

Sobre el PHP lado, su código se verá así:

// we use the same key and IV
$key = hex2bin("0123456789abcdef0123456789abcdef");
$iv =  hex2bin("abcdef9876543210abcdef9876543210");

// we receive the encrypted string from the post
$encrypted = $_POST['decrypt'];
$decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key, OPENSSL_ZERO_PADDING, $iv);
// finally we trim to get our original string
$decrypted = trim($decrypted);

Nos encantaría que puedieras difundir este escrito si lograste el éxito.

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



Utiliza Nuestro Buscador

Deja una respuesta

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