Поскольку mcrypt устарел в PHP 7.1, и у меня много данных, зашифрованных / дешифрованных с помощью mcrypt в существующем проекте, как перенести мой PHP-код из mcrypt в OpenSSL? У меня есть следующий код для шифрования:
$encoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, 'salt', 'source string', MCRYPT_MODE_ECB));
И код дешифрования:
$source = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, 'salt', base64_decode('encoded string'), MCRYPT_MODE_ECB);
Какие функции openssl_
следует использовать в приведенных выше примерах для получения одинаковых результатов без преобразования кодированных данных?
Или единственный способ запустить скрипт, который расшифрует все мои сохраненные зашифрованные данные с помощью mcrypt и закодирует с помощью openssl?
благодаря
OpenSSL не имеет шифрования Rijndael-256; нет эквивалента – вам придется расшифровывать и повторно шифровать все.
Но также:
Все вышеперечисленное можно суммировать следующим образом: не делайте этого самостоятельно, используйте хорошо проверенную библиотеку, такую как defuse / php-encryption .
Криптография – не простая вещь, и вы не можете сделать это правильно всего за 5 строк кода.