如何在PHP中以16字节长的二进制字符串的形式生成加密密钥

时间:2016-01-21 05:31:21

标签: php

我试图在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字节长。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

$key = openssl_random_pseudo_bytes(16);$iv = openssl_random_pseudo_bytes(16);

应该生成一个随机的16字节/ 128位密钥和iv。