Laravel 5-在Javascript中解密Crypt::encrypt
我正在使用Laravel 5-在Javascript中解密Crypt::encrypt,javascript,php,laravel,cryptojs,Javascript,Php,Laravel,Cryptojs,我正在使用Crypt::encrypt加密我的数据并将其输入Javascript代码。如何在Javascript中解密数据?使用laravel 5.1和CryptoJS,可在()找到 在.env集合中: APP_KEY=uberkeythattrocks 在config/app.php集合中: “密码”=>“AES-256-CBC” 在MyController.php中: $mySecret=“我想对他们隐瞒的事情” $encrypted=Crypt::encrypt($mySecret) 在i
Crypt::encrypt
加密我的数据并将其输入Javascript代码。如何在Javascript中解密数据?使用laravel 5.1和CryptoJS,可在()找到
在.env集合中:
希望这有帮助!:) 我解决了这个问题: 我使用的是Laravel Framework 5.7.28,我想解密node.js应用程序中的一些用户密码 为了在我的Js文件中解密,我包括和
代码如下:
$key是您在.env文件中拥有的应用程序密钥
$encrypted是使用laravel中的Crypt::encrypt加密的内容 CryptoJs和Laravel 6和7.x 在.env文件中放置一个Mix变量
MIX_APP_KEY=${APP_KEY}
见:
在/resources/assets/js/app.js中添加:
const CryptoJS = require("crypto-js");
window.decrypt = (encrypted) => {
let key = process.env.MIX_APP_KEY.substr(7);
var encrypted_json = JSON.parse(atob(encrypted));
return CryptoJS.AES.decrypt(encrypted_json.value, CryptoJS.enc.Base64.parse(key), {
iv : CryptoJS.enc.Base64.parse(encrypted_json.iv)
}).toString(CryptoJS.enc.Utf8);
};
最后,在脚本的某个地方,您可以这样解密:
console.log(decrypt(encrypted_text));
首先,你为什么要这么做?在你尝试复制它之前,先找出所有的问题。@jedrzej.kurylo我创建了一个javascript游戏,我想将受保护的数据发送到前端,以避免被用户修改。即使你发送加密的数据,你也必须向javascript提供解密密钥,以便对其进行解密,因此如果用户希望他们能够解密数据。你应该在服务器端做所有的检查@jedrzej.kurylo想说的是,有没有其他方法可以做到这一点,在JS中加密,在Laravel 5.1中解密?我试过了,但在BaseEncrypter.php第45行中不断出现
DecryptException:有效负载无效。
我得到了来自的帮助。这是将cryptjs与Laravel一起使用的示例代码,它工作起来很有魅力。应该从Why I Get when logging readable var中获取什么文件,我希望它能给我加密的字符串?您可以使用本机atob
函数,而不需要“js-base64”包。并确保从laravel键中删除base64:
前缀。
console.log(decrypt(encrypted_text));