我正在尝试在PHP中使用openssl_encrypt
加密行数据。
我想对同一行的所有数据使用相同的IV(因为我只想每行保存一个IV)。但是,当我尝试加密时,使用单个IV会得到不同输入的相同结果。
例如,我得到两个变量“ username”和“ image”,并尝试使用一个IV对其进行加密,但是结果从两个不同的输入(用户名,图像)返回相同的字符串。我该如何解决?
我的代码:
function encrypt($plaintext,$iv): string{
//echo $iv."\n";
$ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$hmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
$ciphertext = base64_encode( $iv.$hmac.$ciphertext_raw );
return $ciphertext;
}?>