【问题标题】:Decrypt String AES 256 outside of Laravel在 Laravel 之外解密字符串 AES 256
【发布时间】:2015-07-23 05:06:04
【问题描述】:

我正在使用框架 laravel 来加密一些字符串,在我的 laravel 中我这样写代码:

public function getBankNameAttribute(){
    return Crypt::encrypt($this->attributes['bank_name']);
}

结果是字符串'abc'加密成字符串

'eyJpdiI6InBxeTlKOVdFQ1FoN2hGNDdPSTJZUnc9PSIsInZhbHVlIjoiVzlQYVpsSlptUHF6QUMwalM0c21vZz09IiwibWFjIjoiNGFlYmY3OTk2MDUyYTcwMzMxMGYzYmQzODRhODUyNWRlZjMzNjNmMDU5NTJiMDg2NmJjNzhkYjI5NTkzYzI1YSJ9'

由于从 laravel 生成 IV,加密的返回总是不同的。如果输出总是不同,我如何解密 laravel 之外的字符串。尤其适用于 Android。

我在 Google 上搜索了整个文档,但没有人为 Android 找到它。提前致谢。

【问题讨论】:

  • 查找源代码并为 Java 重新创建它。
  • 我很困惑 $value = openssl_encrypt($value, $this->cipher, $this->key, 0, $iv);如何在android中openssl_decrypt,我想要一个简单的方法..
  • @XenixPutraSasongko 你找到解决方案了吗?

标签: android laravel encryption


【解决方案1】:

TheAlpha评论中的链接应该足够了。 I'll just add that if you Base64 decode the string 'eyJpdiI6InBxeTlKOVdFQ1FoN2hGNDdPSTJZUnc9PSIsInZhbHVlIjoiVzlQYVpsSlptUHF6QUMwalM0c21vZz09IiwibWFjIjoiNGFlYmY3OTk2MDUyYTcwMzMxMGYzYmQzODRhODUyNWRlZjMzNjNmMDU5NTJiMDg2NmJjNzhkYjI5NTkzYzI1YSJ9' (for instance using https://www.base64decode.org/) you will get a JSON file with three values:

  • iv:初始向量 - 用于在加密时生成随机性 - 需要解密
  • value:您实际要解密的值 - 您需要 iv 和用于加密的密钥才能实际解密它
  • mac:可以用来检查值没有被篡改。 这是可选的,但建议使用。

另见:How to decrypt in Java (Android) text that was encrypted with Crypt in Laravel?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    相关资源
    最近更新 更多