Essayez ceci?:
function encryptData($data, $key, $iv) { $cipher = "aes-256-cbc"; $options = OPENSSL_RAW_DATA; $encrypted = openssl_encrypt($data, $cipher, $key, $options, $iv); $encrypted = base64_encode($encrypted); return $encrypted; } $message = "消息"; $key = "我的秘密密鑰"; $iv = "我的iv"; $encrypted = encryptData($message, $key, $iv); echo $encrypted;
Dans le code PHP, les clés doivent être décryptées en Base64, et non encodées en Base64?:
$key = base64_decode("GSTEGSTEjdfheyhdHSHSHSHDHHDHmdjjdn12ndndn5r=");
Avec ce changement, le texte chiffré requis est créé.
Veuillez noter que si vous êtes en openssl_encrypt()
調(diào)用的第四個參數(shù)中傳遞0
而不是OPENSSL_RAW_DATA
, le texte chiffré sera codé en Base64 par défaut. Par conséquent, le codage explicite en Base64 du texte chiffré n’est pas nécessaire.
N’oubliez pas que les IV statiques ne sont pas s?res. Généralement, pendant le processus de cryptage, un randomIV est généré et transmis avec le texte chiffré à la partie de décryptage (généralement assemblés).