我试图在mysql DB中以加密形式存储字符串,因此寻找双向加密,我找到了关于openssl_encrypt / openssl_decrypt的指南
$ciphertext = openssl_encrypt($plaintext, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
$plaintext = openssl_decrypt($ciphertext, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
该指南未解释如何以$key
的16字节长的二进制字符串形式生成加密密钥,以及$iv
的加密安全随机二进制字符串16字节长。
任何帮助都将不胜感激。
答案 0 :(得分:1)
$key = openssl_random_pseudo_bytes(16);
和$iv = openssl_random_pseudo_bytes(16);
应该生成一个随机的16字节/ 128位密钥和iv。