2015-11-30 2 views
0

Я реализовал следующую функцию для расшифровки строки с помощью Mcrypt:Как расшифровать в PHP без Mcrypt

function decrypt($encrypted){ 

    $key = "I5G9VjmnDQ483iDwE9278ST01Rp12Mr7"; 
    $iv = "W3gtod2XaqHRgdo57968xys2738tl2S6"; 

    $iv_utf = mb_convert_encoding($iv, 'UTF-8'); 

    $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($encrypted), MCRYPT_MODE_CBC, $iv_utf); 

    return $decrypted; 

} 

Есть ли альтернатива этому без использования mcrypt. Я больше не хочу больше зависеть от этого расширения.

Я нашел хорошую библиотеку на Github here, но для этого требуется PHP v5.3 или новее. Мне нужно что-то, что работает с PHP v5.2.4 или новее.

ответ

3

MCRYPT_RIJNDAEL_256

К сожалению, ни один здравомыслящий библиотека не поддерживает Rijndael256. Однако они поддерживают стандарт AES. (Если кто-то читает это, и вы хотите безопасно и надежно криптография в 2015 году, stop using mcrypt!)

Есть ли альтернатива этому без использования mcrypt. Я больше не хочу больше зависеть от этого расширения.

Не с Rijndael256. Я настоятельно рекомендую this secure PHP encryption library, который реализует аутентифицированное шифрование с использованием стандартного стандарта AES, поставляемого с расширением OpenSSL PHP.

Я нашел хорошую библиотеку на Github here.

Для данного определения «хорошо».

  • Эта библиотека поставляется с реализацией Rijndael с использованием чистой PHP. Никогда не рекомендуется писать собственные реализации шифрования, особенно на языке, таком как PHP.
  • Этот код также свободно использует substr() и strlen(), без каких-либо проверок на наличие mbstring.func_overload.
  • Он не может предложить authenticated encryption, что вы хотите в 99,9% случаев.

, но для этого требуется PHP v5.3 или новее. Мне нужно что-то, что работает с PHP v5.2.4 или новее

Прочитано this и ПОЖАЛУЙСТА, обновите до 5.6. Разделы 5.2, 5.3 и 5.4 больше не получают обновлений безопасности, поэтому у вас будет больше проблем, чем просто небезопасная криптография.

Смежные вопросы