当我尝试从管理员端登录某些帐户时,我在标题上收到错误消息。 这是代码:
private function decryptString($string){
$ciphering = "AES-128-CTR";
$options = 0;
$decryption_iv = '4F109F987HJ91597CCB4AF4D6';
$decryption_key = "(Ct:>)xByg68>In&l1P!;6dhd>llD-zel.9aSC+986cn;j8,.J";
$decryption = openssl_decrypt($string, $ciphering,
$decryption_key, $options, $decryption_iv);
return $decryption;
}
日志显示错误出现在“$decryption = openssl_decrypt”行中
尝试更改为 256-ctr,但没有任何作用。想不出其他什么,改变 aes 模式也不是一个选择。
正如您从docs中看到的,iv是一个非NULL初始化向量。它的类型为
String
。您的静脉注射是:
$decryption_iv = '4F109F987HJ91597CCB4AF4D6';
对于你的算法来说太长了
$ciphering = "AES-128-CTR";
您的算法的 iv 长度应为 16 个字节,请参阅 https://www.baeldung.com/java-invalidalgorithmparameter-exception
因此,您要么需要新的静脉注射,要么改变您的算法,具体取决于什么更适合您的需求。