actualizando mi biblioteca de cifrado de MCRYP En OpenSSL, ¿es posible descifrar datos encriptados con MCRYPT? Dos publicaciones diferentes proporcionan información conflictiva.
Pregunta:
¿Es posible actualizar mi biblioteca de cifrado de MCRIPT a OpenSSL? Si es así, ¿cómo?Respuesta:
Sí, es posible actualizar su biblioteca de cifrado de McRypt a OpenSSL.Pregunta:
¿Can I Decrypt datos encriptados con Mcrypt usando OpenSSL?Respuesta:
Sí, es posible descifrar datos encriptados con MCRYPT usando OpenSsl.aquí es un ejemplo de código es un ejemplo de código es un ejemplo de código es un ejemplo de código es un ejemplo de código es un ejemplo de código, es un ejemplo de código es un ejemplo de código es un ejemplo de código es un ejemplo de código es un ejemplo de código es de cómo puede descifrar datos encriptados con MCRYPT usando OpenSSL:
Public Function Decrypt ($ data, $ key) { $ sal = substr ($ data, 0, 128); $ ENC = subStr ($ data, 128, -64); $ Mac = Substr ($ Data, -64); Lista ($ Cipherkey, $ Mackey, $ IV) = $ this-> getKeys ($ sal, $ clave); if ($ mac! == hash_hmac ('sha512', $ enc, $ mackey, true)) { devolver falso; } $ dec = openssl_decrypt ($ enc, $ this-> cipher, $ cipherkey, openssl_raw_data, $ iv); devolver $ dec; }
public function decrypt($data, $key) { $salt = substr($data, 0, 128); $enc = substr($data, 128, -64); $mac = substr($data, -64); list ($cipherKey, $macKey, $iv) = $this->getKeys($salt, $key); if ($mac !== hash_hmac('sha512', $enc, $macKey, true)) { return false; } $dec = openssl_decrypt($enc, $this->cipher, $cipherKey, OPENSSL_RAW_DATA, $iv); return $dec; }
la función openssl_decrypt () requiere que el parámetro IV sea la misma longitud que el tamaño de bloque del cifrado que se usa. [
El siguiente código se puede usar para probar la función Decrypt (): $ Keys = [
'Esta es una clave secreta'.
'G906M70P (IHZA5T & 5X7 (W0�31) U) �E79CiYJQ! IP2U (XT13Q6) TJ6GZ3D2WI & 0 ") 7CP5',
chr (6). Chr (200). Chr (16). 'Mi clave'. chr (3). chr (4). Chr (192). CHR (254). 'zyx0987 !!',
'Y finalmente una clave más para probar aquí:',
];
$ data = [
'A',
'Esta es una prueba',
'Ahora pruebe con cifrar algo un poco más con 1234567890.',
'$ longitud = MCRYPT_GET_BLOCK_SIZE (MCRYPT_BLOWFISH, MCRYPT_MODE_CBC); $ last = ord ($ data [strlen ($ data) - 1]); ',
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec Sit Amet Pharetra Urna. Vestibulum ante ipsum primis en faucibus orci luctus et ultrices Posuere cubilia curae; Ut Fringilla, Quam Sed Eleifend Eleifend, Justo Turpis Consectetur Tellus, Quis Tristique Eros Erat en Nibh. Nunc dictum neque vel di diro molestie fermentum. Pellentesque Dignissim Dui Quis Tortor Eleifend, UT Maximus Elit Eggestas. Donec Posuere Odio et Auctor Porta. Quisque placerat condimentum maximus. Curabitur Luctus dolor eget sem luctus, en el tortor dignissim venenatis. Mauris Eget nulla nisl. ',
];
$ fallas = 0;
foreach ($ data como $ datum) {
foreach ($ keys as $ key) {
$ enc = nuevo cifrado (MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$ cifrado = $ enc-> encrypt ($ datum, $ key);
$ dec = new CiCryctionOpenssl ('BF-CBC');
$ Decrypted = $ dec-> Decrypt ($ cifrado, $ clave);
if (strcmp ($ datum, $ descifrado)! == 0) {
echo "cifrado con clave '$ clave' de '$ datum' falló. '$ descrypted'! = '$ datum'
\ n \ n";
$ fallas;
}
}
}
if ($ fallas) {
echo "$ las pruebas de fallas fallidas.
\ n";
} demás {
echo "Todos bien
\ n";
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3