Come probabilmente saprete, l'estensione mcrypt sarà deprecata su php 7.1.Sostituire mcrypt_encrypt con openssl_encrypt
Io uso per mantenere un'applicazione "legacy" che voglio migrare alla fine a questa versione così ho eseguito i test e verificato che non posso più ottenere il 100% di copertura, poiché c'è un pezzo di codice che usa il codice seguente:
$key = 'sA*(DH';
// initialization vector
$iv = md5(md5($key));
$output = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, $iv));
ho cercato di porto questo pezzo di codice per openssl_encrypt utilizzando questo codice
$key = md5('sA*(DH');
$iv = md5($key);
echo base64_encode(openssl_encrypt($data, "aes-256-cbc", $key, OPENSSL_RAW_DATA, $iv));
Ma ho 2 problemi con questo:
- La lunghezza IV dovrebbe essere di 16 caratteri (e MD5 mi dà 32), in modo da ottenere un PHP Warning
- L'uscita non è lo stesso (anche se troncare a 16 caratteri)
Chiunque ha avuto problemi simili (o sapete come risolverlo?)
BTW: Sto usando la versione del master di sviluppo di PHP (che dovrebbe essere 7.1.0 alpha 3).
Grazie per la risposta, ma il codice originale non è mio e in realtà non uso realmente md5 per niente. Proviamo questo, grazie. –