我是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
}
答案 0 :(得分:0)
64个字符×8位= 512位,而不是AES256所需的256位。
如果您传入的字符串是键的十六进制表示形式(例如"1234abcd…"
),则需要将其分成两个字符的子字符串序列,并使用UInt8(…, radix:16)
来解析每个字符串一个十六进制。