【问题标题】:how to encrypt string using AES 256, ECB mode with padding pkcs5?如何使用 AES 256、ECB 模式和填充 pkcs5 加密字符串?
【发布时间】:2023-04-06 20:14:01
【问题描述】:

我是 iOS 新手,我不知道如何使用 ECB 模式和填充的 AES 256 加密字符串无法加密

func aes_Encrypt(AES_KEY: String) -> String {
    var result = ""
    do {
        let key: [UInt8] = Array(AES_KEY.utf8) as [UInt8]
        let aes = try! AES(key: key, blockMode: ECB() as BlockMode, padding: .pkcs5) 
        let encrypted = try aes.encrypt(Array(self.utf8))
        result = encrypted.toHexString()
        print("AES Encryption Result: \(result)")
    } catch {
        print("Error: \(error)")
    }
    return result
}

【问题讨论】:

  • 不要使用不安全的ECB模式。至少使用 CBC 或 CTR 模式,或者更喜欢 AES-GCM 模式。

标签: ios encryption swift4.1


【解决方案1】:

64 个字符 × 8 位 = 512 位,而不是 AES256 所需的 256 位。

如果您传入的字符串是一个键的十六进制表示形式(例如"1234abcd…"),您需要将其分解为一系列两个字符的子字符串,并使用UInt8(…, radix:16) 将每个子字符串解析为十六进制。

【讨论】:

  • 我有 5 个(例如“12345”)字符密钥并将其转换为 16 字节 SHA 256,请您提供代码
猜你喜欢
  • 2012-11-22
  • 2021-01-20
  • 1970-01-01
  • 2017-08-29
  • 2011-04-27
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多