我正在使用clean: {
dist: {
files: [{
dot: true,
src: [
'.tmp',
'<%= yeoman.dist %>/{,*/}*',
'!<%= yeoman.dist %>/.git/**'
]
}]
},
server: '.tmp'
},
加密我的数据并提供给Javascript代码。如何在Javascript中解密数据?
答案 0 :(得分:4)
使用laravel 5.1和CryptoJS,可以在(https://code.google.com/p/crypto-js/)找到。
在.env中设置:
在config / app.php中设置:
:
$ mySecret =“我想躲避他们的东西”;
$ encrypted = Crypt :: encrypt($ mySecret);
:
var key =“uberkeythatrocks”;
var decrypted = CryptoJS.AES.decrypt(加密,密钥);
var readable = decrypted.toString(CryptoJS.enc.Utf8);
重要: PHP中的'key'必须与JS中的'key'相同,而PHP中的'cipher'必须与JS相同,但CryptoJS将自动选择AES-128-CBC或AES-256-CBC,具体取决于你的'钥匙'的长度。尽管laravel 5.1默认的“密码”是AES-256-CBC,但我建议你从.env文件中获取'密钥'以在JS中使用。
从Laravel更改或生成新的“密钥”
使用AES-128-CBC
然后
请注意,更改“密钥”将表示现有的用户帐户登录密码将无效,除非您删除该用户,然后再创建新密码。
希望这有助于此! :)
答案 1 :(得分:2)
在 .env 文件内放置一个Mix变量
MIX_APP_KEY=${APP_KEY}
请参阅:https://laravel.com/docs/7.x/mix#environment-variables
在 /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));
答案 2 :(得分:0)
我已解决:
我正在使用Laravel Framework 5.7.28,我想在我的node.js应用程序中解密一些用户密码
对于在我的Js文件中解密,我包括CryptoJS和Base64 JS
这是代码:
$ key 是您的.env文件中的APP_KEY
$ encrypted 是您在laravel中使用 Crypt :: encrypt 加密的内容
var CryptoJS = require("crypto-js");
var Base64 = require('js-base64').Base64;
var encrypted = '{{ $encrypted }}';
var key = "{{ $key }}";
var encrypted_json = JSON.parse(Base64.decode(encrypted));
// Now I try to decrypt it.
var decrypted = CryptoJS.AES.decrypt(encrypted_json.value, CryptoJS.enc.Base64.parse(key), {
iv : CryptoJS.enc.Base64.parse(encrypted_json.iv)
});
console.log(decrypted.toString(CryptoJS.enc.Utf8));