PHP解密mcrypt(MCRYPT_RIJNDAEL_128)

时间:2016-08-26 15:55:23

标签: php encryption mcrypt

我有这个功能:

$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
$key256 = 'b4:18:d1:ed:228d';
$iv = 'b4:18:d1:ed:228d';
$plainText = "blabla";
mcrypt_generic_init($cipher, $key256, $iv);
$cipherText256 = mcrypt_generic($cipher,$plainText );
$cipherHexText256 =bin2hex($cipherText256);
echo $cipherHexText256;

我得到了结果:

b752e34496e86853569370b8323eb601

有人可以帮助我并给我一个功能,将结果再次解密到明文吗?

亲切的问候

1 个答案:

答案 0 :(得分:0)

<?php
/* Open the cipher */
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

/* Create the IV and determine the keysize length, use MCRYPT_RAND
 * on Windows instead */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$ks = mcrypt_enc_get_key_size($td);

/* Create key */
$key = substr(md5('very secret key'), 0, $ks);

/* Intialize encryption */
mcrypt_generic_init($td, $key, $iv);

/* Encrypt data */
$encrypted = mcrypt_generic($td, 'This is very important data');

/* Terminate encryption handler */
mcrypt_generic_deinit($td);

/* Initialize encryption module for decryption */
mcrypt_generic_init($td, $key, $iv);

/* Decrypt encrypted string */
$decrypted = mdecrypt_generic($td, $encrypted);

/* Terminate decryption handle and close module */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

/* Show string */
echo trim($decrypted) . "\n";
?>

取自http://php.net/manual/de/function.mcrypt-module-open.php