Laravel 7.x 加密,CryptoJS 解密?

Laravel 7.x Encrypt, CryptoJS decrypt?

我正在尝试使用默认加密器解密我在 Laravel 7.x 上创建的字符串 'Crypt::encryptString' ,这是 Laravel 文档建议的,问题是 我到处寻找一种方法来解密 javascript 级别的消息,但我总是得到一个空字符串, 我使用了以下代码,但对我不起作用,我尝试阅读 laravel 内部加密 class。

我加密消息的方式

$test = Crypt::encryptString('Testing this');

我尝试过的解决方案:

1.the 以下代码

https://gist.github.com/huzemin/e8d7a904cec55d4d7635c9322f143c42

2.CryptoJS,我尝试了多种不同的选择,但没有任何效果

还有一点,当 laravel 生成一个密钥时,它总是以 base64: 开头,我应该把它作为密钥的一部分吧?

示例:

APP_KEY=base64:0q2V8/90FYnWmEKpks13QMPHoEJhZLlEcr9eW0BMdhU=
//This is my key on the .env

$test = Crypt::encryptString('Testing this');
//eyJpdiI6Ilk0TGJ4eEh3WGUyTzhaWVdCMXY4SHc9PSIsInZhbHVlIjoiU3JuQXh0ekl6cEpBekgwVnJKSzBZZz09IiwibWFjIjoiYTRjYTM5ZTJlNzViMjVmZDIxMWU0Y2M0ZmQ4Y2YyZDVkZDMzOGZiMGZmMDU5N2RjNDYxMDcxMDcyNzA4ZjIzNiJ9

提前致谢。

好的,事实证明要点上的脚本几乎就在那里我只需要根据第 23 行的评论“tim-reynolds-thegrommet”更改我获取密钥的方式, annnnd 在第 12 行(那是他没有提到的)也许太明显了我觉得自己很蠢 :( 无论如何 所以每个

CryptoJS.enc.Utf8.parse(this.key)

应该改成

CryptoJS.enc.Base64.parse(this.key)

是的,您不需要 .env laravel 文件中密钥中的“base64:”,只需复制其余部分,

例如:

APP_KEY=base64:0q2V8/90FYnWmEKpks13QMPHoEJhZLlEcr9eW0BMdhU=

就拿

0q2V8/90FYnWmEKpks13QMPHoEJhZLlEcr9eW0BMdhU=

作为您的密钥,感谢 Robert Harvey 评论。