Jak zapewne wiecie, rozszerzenie mcrypt zostanie wycofane na php 7.1.Zastępowanie mcrypt_encrypt z openssl_encrypt
Używam do zachowania "starej" aplikacji, którą chcę przenieść w końcu do tej wersji, więc przeprowadziłem testy i zweryfikowałem, że nie mogę już uzyskać 100% zasięgu, ponieważ istnieje kod, który wykorzystuje Poniższy kod:
$key = 'sA*(DH';
// initialization vector
$iv = md5(md5($key));
$output = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, $iv));
próbowałem portu ten kawałek kodu openssl_encrypt przy użyciu tego kodu
$key = md5('sA*(DH');
$iv = md5($key);
echo base64_encode(openssl_encrypt($data, "aes-256-cbc", $key, OPENSSL_RAW_DATA, $iv));
ale mam 2 problemy z tym:
- długościach IV powinna wynosić 16 znaków (i md5 daje mi 32), więc dostać ostrzeżenie PHP
- Wyjście to nie to samo (nawet jeśli obciąć do 16 znaków)
ktoś miał podobne problemy (lub wiesz, jak to naprawić?)
BTW: Używam dev master wersji PHP (ma być 7.1.0 alpha 3).
Dzięki za odpowiedź, ale oryginalny kod nie jest mój i naprawdę nie używam md5 w rzeczywistości. Spróbuję tego, dzięki. –