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

时间:2018-02-21 12:25:17

标签: php laravel encryption laravel-5 laravel-5.4

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

2 个答案:

答案 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'
    );