gpt4 book ai didi

ios - AES解密过程可以保存下来以后恢复吗?

转载 作者:行者123 更新时间:2023-11-28 21:06:48 27 4
gpt4 key购买 nike

我需要在下载 AES 加密文件时对其进行解密。

这意味着,每次我收到 256 字节的数据,我都可以立即解密。

问题是,用户可能会暂停下载过程,稍后再恢复。然后,需要创建一个新的 CCCryptorRef 实例来继续解密。但是解密后的数据是错误的。

有什么方法可以完美保存 CCCryptorRef 实例,以便我以后使用它?

顺便说一句,我正在使用 iOS 框架 api。我正在使用 CCCryptorCreateWithMode()CCCryptorUpdate()CCCryptorFinal() 进行正常的 AES 处理。

最佳答案

如果您知道使用密码的操作模式,通常您可以创建一个新的密码上下文(或任何名称,例如 Cryptor)。

例如,对于 CBC 模式,您可以存储刚刚加密的密文的最后一个密码 block (16 字节)。然后您可以将其用作下一个密码上下文的 IV。另一方面,如果您要使用 CTR 模式,那么您需要存储最后一个计数器值并使用该计数器 + 1 开始解密。

这样你就永远不需要存储/恢复密码上下文;这就是为什么 API 中不存在此功能的原因。您可以在所需状态下创建一个新的。


有关操作模式的更多信息 here .


如果您使用 CBC:请注意您会遇到密文片段末尾的去填充问题。您只想在解密最后一个片段时执行 unpadding,当您这样做时,您应该注意 padding oracle 攻击。


如果可用,应首选使用 TLS 来保护传输中的文件内容。

关于ios - AES解密过程可以保存下来以后恢复吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45390539/

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