texto online encriptar desencriptar criptografia contraseƱa php encryption as3crypto

online - descifrar un texto encriptado as3crypto en PHP



encriptar y desencriptar php (2)

Traté de cifrar un texto en as3crypto a través de la aplicación de demostración.

ahora estoy tratando de descifrar el texto encriptado a través de php, pero parece que el texto no está correctamente descifrado. ¿Alguien sabe cómo descifrarlo correctamente a través de PHP? o lo estoy haciendo mal? por favor iluminame...

aquí está el escenario:

  1. cifra esto en http://crypto.hurlant.com/demo/ :

    encriptación: AES

    modo: CBC

    relleno: ninguno

    clave: 11918f8bcd112e92744125008722050c

    texto: Lorem ipsum dolor sit amet, consectetur adipiscing elit. En ut massa nec purus laoreet posuere quis vitae tortor.

    vector inicializar: déjelo en blanco

  2. presione encriptar seleccione base64 y copie el texto de cifrado.

  3. hacer un script php que tenga estos códigos y ejecutarlo:

    $ cipher = MCRYPT_RIJNDAEL_128;

    $ mode = MCRYPT_MODE_CBC;

    $ key = "11918f8bcd112e92744125008722050c";

    $ cipher = "COLOCA EL TEXTO CIPHER AQUÍ ...";

    $ data = base64_decode ($ cipher);

    echo mcrypt_decrypt ($ cipher, $ key, $ data, $ mode);


el problema probablemente radica en tu clave. Si bien puede alimentar una cadena hexadecimal a as3crypto y sabrá qué hacer con ella, mcrypt_decrypt interpretará cada carácter como su valor subyacente ASCII (como a = 97) en lugar de su valor hexadecimal (a = 10). Usa el método hex2bin para convertir la cadena hexadecimal en una cadena de bytes, y tu descifrado probablemente funcione bien.

también, un problema puede descansar con diferentes ideas de un IV predeterminado (vector de inicialización) entre as3crypto y php. Como está utilizando el modo CBC, debe especificar un IV, al igual que una buena práctica de seguridad. También tenga en cuenta las posibles dificultades similares a las de su clave, de especificar una cadena hexagonal en as3 y la necesidad de convertirla en php.


Esto funcionaría:

Código PHP:

//notice that $key and $iv length must be 16 chars long! ex: 1234567890123456 function decrypt($data,$key,$iv) { $decr= mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($data), MCRYPT_MODE_CBC, $iv); return $decr; }

Y aquí está el código AS3

//notice that $key and $iv length must be 16 chars long! ex: 1234567890123456 private function encrypt(input:String,decrKey:String,decrIV:String):String { var inputBA:ByteArray=Hex.toArray(Hex.fromString(input)); var key:ByteArray = Hex.toArray(Hex.fromString(decrKey)); var pad:IPad = new NullPad(); var aes:ICipher = Crypto.getCipher("aes-cbc", key, pad); var ivmode:IVMode = aes as IVMode; ivmode.IV = Hex.toArray(Hex.fromString(decrIV)); aes.encrypt(inputBA); return Base64.encodeByteArray( inputBA); }