ios - 如何使用 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
}
解决方案
64 个字符 × 8 位 = 512 位,而不是 AES256 所需的 256 位。
如果您传入的字符串是键的十六进制表示形式(例如"1234abcd…"
),您需要将其分解为两个字符的子字符串序列,并用于UInt8(…, radix:16)
将每个子字符串解析为十六进制。
推荐阅读
- python - 在本地使用 pyspark 处理大文件
- node.js - 如何在 Windows 上使用 nodejs 递归扫描所有文件夹和文件
- node.js - 当多个开发人员在 Node JS 中使用相同的端口时,为什么应用程序会崩溃
- python - 使用 youtube API v3 时订单不起作用
- reactjs - 将值从组件传递到 Redux Store
- javascript - WebGL。为每个像素调用片段着色器的全屏四边形或三角形?
- python - 如何从另一个具有不同形状的数据框中填充缺失值
- package - 新 0.19 项目中 elm/html 样式属性包的问题
- python - 如何构造正则表达式来检查有效路径?
- javascript - 如何将 SVG 和字体过滤器应用于 amcharts4?