"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Puedo migrar mi cifrado de MCRYPT a OpenSSL y descifrar datos cifrados de MCRYPT usando OpenSSL?

¿Puedo migrar mi cifrado de MCRYPT a OpenSSL y descifrar datos cifrados de MCRYPT usando OpenSSL?

Publicado el 2025-03-03
Navegar:666

Can I Migrate My Encryption from Mcrypt to OpenSSL, and Decrypt Mcrypt-Encrypted Data Using OpenSSL?

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:

¿puedo descifrar datos encriptados con mcRypt usando OpenSSL?

Responder Decrypt datos encriptados con MCRYPT usando openssl.

Aquí hay un ejemplo de código de cómo puede descifrar datos encriptados con McRypt usando OpenSsl:

Función pública 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; }

notas adicionales:

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 de la cifra que se usa. OPENSSL_DECRYPT () función en el modo CBC.

test:
    [&]
  • 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"; }
Último tutorial Más>

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