如何在laravel或php中后端加密/解密?

问题描述 投票:0回答:2

前端使用: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后端加密/解密?

php laravel encryption laravel-5 laravel-5.4
2个回答
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


0
投票

我找到了解决方案:缺少填充。

\openssl_encrypt(
        'encrypted value',
        'algorithm', 'key', 'payload pad', 'iv'
    )

$value = \openssl_encrypt(
        'udaiyar',
        'aes-128-cbc', '5555555555555555', **128/8**, '5555555555555555'
    );
© www.soinside.com 2019 - 2024. All rights reserved.