前端使用:cryptojs
var key = CryptoJS.enc.Utf8.parse("9999999999999999");
console.log(key)
var iv = CryptoJS.enc.Utf8.parse("9999999999999999");
console.log(iv)
var text = 'testing';
var encrypted = '' + CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text), key, { keySize: 128 / 8, iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
console.log(encrypted)
如何使用laravel或php后端加密/解密?
答案 0 :(得分:0)
如果使用 config / app.php 中密钥选项中存储的密钥加密数据,则可以使用Laravel的加密/解密帮助程序。
$decrypted = decrypt($encryptedValue);
有关详细信息,请参阅Laravel文档:https://laravel.com/docs/5.4/encryption
您还可以使用 OpenSSL 扩展程序功能来加密/解密 AES ,尤其是在使用其他密钥加密值时:
$decryptedString = openssl_decrypt($encryptedString, 'AES-256-CBC', $key);
有关详细信息,请参阅文档:http://php.net/manual/en/function.openssl-decrypt.php
答案 1 :(得分:0)
我找到了解决方案:缺少填充。
\openssl_encrypt(
'encrypted value',
'algorithm', 'key', 'payload pad', 'iv'
)
$value = \openssl_encrypt(
'udaiyar',
'aes-128-cbc', '5555555555555555', **128/8**, '5555555555555555'
);