如何使用 CryptoSwift 框架用 swift 解密 AES 128

How to decrypt AES 128 with swift using CryptoSwift framework

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

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

我有保存加密数据的二维码的密钥和数据。

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

编辑:抱歉,我忘了提到加密是用:

  1. 密码:AES-128
  2. 操作模式:CBC
  3. 填充:PKCS7
  4. 密钥派生自:简单解码

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

任何帮助都会很好。

请参阅此 示例 Swift AES 代码。

当你说:"Cipher : AES-128" 是模棱两可的。大概你的意思是 128 位密钥大小。提供的密钥为 24 字节,这将是 192 位的密钥大小。

CBC 模式需要 iv 但已指定 none。默认情况下,许多实现将使用 0x00 字节,但这并不能保证,Common Crypto 会这样做。但最好提供 iv.

如果您说:"Key derived from : Simple decoding",您期待什么?当前最佳实践解决方案是 PBKDF2。

您需要一个桥接头并在其中添加#import。如果您没有桥接头让系统为输出添加一个,请参见Adding a Bridging Header,您可以在步骤 3 之后删除 .m 文件。

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