Rumah > Soal Jawab > teks badan
P粉6680193392023-09-01 16:26:36
Cuba ini:
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;
P粉6396675042023-09-01 15:35:49
Dalam kod PHP, kunci mestilah Base64 disulitkan, bukan Base64 dikodkan:
$key = base64_decode("GSTEGSTEjdfheyhdHSHSHSHDHHDHmdjjdn12ndndn5r=");
Dengan perubahan ini, teks sifir yang diperlukan dicipta.
Sila ambil perhatian bahawa jika dalam openssl_encrypt()
调用的第四个参数中传递0
而不是OPENSSL_RAW_DATA
, teks sifir akan dikodkan Base64 secara lalai. Oleh itu, pengekodan Base64 secara eksplisit teks sifir adalah tidak diperlukan.
Sila ingat bahawa IV statik tidak selamat. Biasanya semasa proses penyulitan, rawakIV dijana dan dihantar bersama teks sifir kepada pihak penyahsulitan (biasanya disambung bersama).