我們有一些傳統需要使用mcrypt解碼函數。mcrypt函數在舊服務器上不起作用
- old sever Ubuntu Linux 10.04.1 working sample。有一個info.php可用
- 新服務器Debian Linux 8 failing sample。有一個info.php可用
PHP版本5.6.14-0 + deb8u1在兩臺服務器上。
PHP代碼:
<?php
$salt = '[email protected]}7F^LkC[k_bx~E^'; //
$text = 'Our text decoeded';
$encout = simple_encrypt($salt, $text);
echo 'encrypted: ' . $encout .'<br/>';
echo 'decrypted: ' . simple_decrypt($salt, $encout) ;
function simple_encrypt($salt, $text) {
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
function simple_decrypt($salt, $text)
{
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
?>
爲什麼這兩個發球有所不同呢?
此外,這個加密代碼是非常不安全的。 [ECB模式](https://blog.filippo.io/the-ecb-penguin/),[MCRYPT_RIJNDAEL_256](https://paragonie.com/blog/2015/05/if-you-re-typing-word -crypt-into-your-code-you-re-doing-it-wrong)等等。 –