0

我正在研究扫描二维码并获取需要解密的加密 AES-128 数据的 swift 项目。

我正在使用一个名为 CryptoSwift 的框架。

我有来自保存加密数据的 QR 码的密钥和数据。

var key     = "B7zqj4TAXnPevYZAR4T26969"
var qrData  = "zWDzClfre4aOjTumzGsnpqh4Sje7sFsbKceA3/OSH3nKRwc7/6fYUajBr/bLh9BB"

编辑:对不起,我忘了提到加密是用:

  1. 密码:AES-128
  2. 操作模式:CBC
  3. 填充:PKCS7
  4. 密钥来源于:简单解码

我想知道我应该采取什么方法来解密这个 QR 数据。

你能帮忙的话,我会很高兴。

4

1 回答 1

1

有关示例 Swift AES 代码,请参阅此SO 答案

当您说:“密码:AES-128”时,这是模棱两可的。大概您的意思是 128 位密钥大小。提供的密钥是 24 字节,这将是 192 位的密钥大小。

CBC 模式需要 iv 但未指定。许多实现将默认使用 0x00 字节,但这不能保证,Common Crypto 可以。但最好始终提供 iv。

当你说:“密钥派生自:简单解码”时,你期望什么?当前的最佳实践解决方案是 PBKDF2。

您需要一个桥接头并在其中添加#import。如果您没有桥接头让系统添加一个用于输出,请参阅添加桥接头,您可以在第 3 步之后删除 .m 文件。

您还需要将 Security.framework 添加到项目中。如果您使用的是 Swift,则使用什么版本。

于 2015-07-02T10:53:46.247 回答