【发布时间】:2016-01-15 20:10:45
【问题描述】:
我一直在 Apple 的 CCCrypto 文档、框架和其他 SO 答案中兜圈子,但没有取得任何进展。
我认为我需要弄清楚如何从我收到的加密字符串中获取 IV。
我收到一个包含字符串的 JSON 有效负载。该字符串在 AES-256-CBC 中加密。 (来自我认为使用 OpenSSL 的 Laravel PHP 实例)。解密后的字符串本身是另一个 JSON 对象。
我有一个预定义的密钥。
我收到的字符串类似于:
eJahdkawWKajashwlkwAkajsne8ehAhdhsiwkdkdhwNIEhHEheLlwhwlLLLLhshnNWhwhabwiIWHWHwh=
(但要长得多)。
我在这里尝试使用这个答案:Issue using CCCrypt (CommonCrypt) in Swift
但是 a) 不确定我是否正确地将字符串转换为数据,以及 b) 如何从收到的字符串中获取 IV(初始化向量)。
使用该答案我确实得到了“成功”,但是当我尝试将其传递给 NSJSONSerailizer 时,我从来没有得到好的结果(它总是失败),但我确实得到了数据 - 我认为这是垃圾。
编辑:
我真的误解了我最初的问题 - 我收到了一个 base64 编码的字符串,我需要将它解码为 JSON(这很好)。然后使用链接的答案并导入 CommonCrypto 我以为我可以获得可用的数据,但我不是。 @Rob Napier 的回答非常有帮助。我认为我的问题是有问题的 laravel 实例正在使用 OpenSSL。
【问题讨论】:
标签: ios swift laravel encryption aes