gpt4 book ai didi

swift 加密 AES 265

转载 作者:行者123 更新时间:2023-11-28 12:14:24 27 4
gpt4 key购买 nike

我不明白为什么我不能使用下面的代码进行 AES 加密。

    let key="12345678900987654321564738290123".bytes;//32
let iv="passwordpasswordwordpasswordpass".bytes;//32
let message="Hello text fcrypt Hello text for enfor r encryptg ";
print(message.count) //50
let data = Padding.pkcs7.add(to: message.bytes, blockSize: AES.blockSize)
do {
let aes = try AES(key: key, blockMode: .CBC(iv: iv), padding: .pkcs7)
let ciphertext = try aes.encrypt(data)
print(ciphertext)
} catch {
print(error)//dataPaddingRequired
}

最佳答案

您的 IV 应该是 16 个字节,而不是 32 个字节。AES 始终具有 128 位的 block 大小,除以 8 当然是 16 个字节。 CBC 模式使用与大多数(但不是所有)加密模式相同大小的 block 大小的 IV。

经过身份验证的 GCM 模式有点奇怪:它默认使用 12 字节的 nonce/IV,并且仅适用于 block 大小为 128 位的密码。

关于 swift 加密 AES 265,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47278979/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com