PHP加密解密明文相同每次密文不一样非对称加解密
16lz
2021-01-22
//加密:
//密钥 把数据装入二进制(更安全)
$key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");
echo 'key::'.$key.'<Br><Br>';
//看下二进制数据长度
$key_size = strlen($key);
echo "Key size: " . $key_size . "<br><br>\n";
$plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";
# create a random IV to use with CBC encoding
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_CBC, $iv);
$ciphertext = $iv . $ciphertext;
$ciphertext_base64 = base64_encode($ciphertext);
//输出密文(每次都不一样,更安全)
echo '<Br><br>jia mi:::'.$ciphertext_base64 . "\n";
//解密:
$ciphertext_dec = base64_decode($ciphertext_base64);
$iv_dec = substr($ciphertext_dec, 0, $iv_size);
$ciphertext_dec = substr($ciphertext_dec, $iv_size);
$plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
echo '<Br><br>jie mi:::'.$plaintext_dec . "\n";
exit;
更多相关文章
- MySQL中varchar最大长度是多少?
- mysql——数据库设计中int与varchar中的长度含义
- mysqli_query中的最大查询长度。
- WebKit "拒绝设置不安全的标题'内容长度' "
- 获取JavaScript数组元素的最大长度
- 数组与矩阵---需要排序的最短子数组长度
- python实现求最长子串长度
- 在不知道序列长度的情况下,在Python中展开多个赋值
- 在Python中解析Yaml:检测重复的密钥