首页 > 解决方案 > 如何使用 AES 256、ECB 模式和填充 pkcs5 加密字符串?

问题描述

我是 iOS 新手,我不知道如何使用 AES 256 和 ECB 模式和填充来加密字符串 我看了一下 cryptoswift 但我收到密钥长度错误 我有 64 个字符的密钥,我无法加密

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
}

标签: iosencryptionswift4.1

解决方案


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

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


推荐阅读