iOS - 解密由AES

时间:2016-12-01 16:23:00

标签: ios swift encryption cryptography aes

我需要加密的解密值非常类似于PHP mcrypt-encrypt

中的第一个示例

这就是我所知道的:

  • iv是base64编码
  • 值也是base64编码的
  • 从base64解码两个值后,我应该使用类似于PHP mcrypt-decrypt
  • 的解密方法

我正在使用CryptoSwift库并且我创建了这个帮助器方法(它需要使用参数而不是代码中的值,直到我让它工作):

class func aesDecrypt(value: String, key: String) {
    let vector = "8Z2IwsEwZ5lh27kFUmhiww=="
    let vectorData = Data(base64Encoded: vector)
    let vectorDecodedString = String(data: vectorData!, encoding: .unicode)
    print("Vector decoded: \(vectorDecodedString)") // foo

    let key = "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3"
    let manufacture = "t0gEQWTxKgrGCOqXYOIuf6syF7nm1oCrwJVsxUJvw6e2sRQ25TgmML6vzfA3YFFe"
    let keyBytes: [UInt8] = Array(key.utf8) //16
    let ivBytes: [UInt8] = [UInt8](vectorData!)//Array(vectorDecodedString!.utf8)

    let manufactureData = Data(base64Encoded: manufacture)
    let valueInBytes = [UInt8](manufactureData!)

    do {
      let aes = try AES(key: keyBytes, iv: ivBytes, blockMode: .CBC)
      let decryptedBytes = try aes.decrypt(valueInBytes)
      let decryptedData = Data(bytes: decryptedBytes)
      let decryptedString = String(bytes: decryptedBytes, encoding: .utf8)
      let decryptedString2 = String(data: decryptedData, encoding: .utf8)
      print("decryptedString: \(decryptedString)")

    } catch let error {
      print(error.localizedDescription)
      // some error
    }
  }

我从服务器获取的代码中的值。我用字节或字符串尝试AES,但没有运气。我的代码出了什么问题?我该怎么办呢?谢谢你的帮助

0 个答案:

没有答案