final class Encryption {
private $key;
public function __construct($key) {
$this->key = hash('sha256', $key, true);
}
public function encrypt($value) {
return strtr(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), $value, MCRYPT_MODE_ECB)), '+/=', '-_,');
}
public function decrypt($value) {
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, hash('sha256', $this->key, true), base64_decode(strtr($value, '-_,', '+/=')), MCRYPT_MODE_ECB));
}
}
由于mcrypt功能,以上代码在php 7.2中不再起作用。如何将其转换为php 7.2中的等效功能?
答案 0 :(得分:0)
不推荐使用PHP的mcrypt库,而推荐使用openssl。
我建议同时使用AES-CBC-256和openssl_encrypt
和openssl_decrypt
来代替MCRYPT_RIJNDAEL_256。
http://us2.php.net/manual/en/function.openssl-encrypt.php http://us2.php.net/manual/en/function.openssl-decrypt.php