在Laravel之外解密String AES 256

时间:2015-07-23 05:06:05

标签: android laravel encryption

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

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

结果是String' abc'加密为String

  

' eyJpdiI6InBxeTlKOVdFQ1FoN2hGNDdPSTJZUnc9PSIsInZhbHVlIjoiVzlQYVpsSlptUHF6QUMwalM0c21vZz09IiwibWFjIjoiNGFlYmY3OTk2MDUyYTcwMzMxMGYzYmQzODRhODUyNWRlZjMzNjNmMDU5NTJiMDg2NmJjNzhkYjI5NTkzYzI1YSJ9'

加密的返回总是不同的,因为从laravel生成IV。如果输出总是不同,我怎样才能解析laravel之外的字符串。特别是对于Android。

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

1 个答案:

答案 0 :(得分:0)

TheAlpha评论中的链接应该足够了。我只补充一点,如果你的base64字符串“eyJpdiI6InBxeTlKOVdFQ1FoN2hGNDdPSTJZUnc9PSIsInZhbHVlIjoiVzlQYVpsSlptUHF6QUMwalM0c21vZz09IiwibWFjIjoiNGFlYmY3OTk2MDUyYTcwMzMxMGYzYmQzODRhODUyNWRlZjMzNjNmMDU5NTJiMDg2NmJjNzhkYjI5NTkzYzI1YSJ9”解码(例如使用https://www.base64decode.org/),你会得到一个JSON文件有三个值:

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

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