当我解密密文时,CommonCrypto 是否可靠地知道我的密钥何时无效?

发布于 2024-12-11 09:52:52 字数 207 浏览 1 评论 0原文

当我尝试使用错误的密钥解密密文时,CCCrypt 返回 kCCDecodeError。

问题是,它这样做是否可靠(例如,我是否保证,如果它返回成功,我的输入密钥就是用于加密纯文本的密钥,并且我是否也保证我的输出数据是我的原始纯文本)以及如何它甚至可以知道我的密钥是否正确吗?

据我对加密的理解,引擎无法预测密钥是否有效,应该只给我随机噪声作为输出数据和成功的返回代码。

When I try to decrypt a cipher text using the wrong key, CCCrypt returns kCCDecodeError.

Question is, does it do so reliably (eg. am I guaranteed that if it returns success, my input key was the key used to encrypt the plain text, and am I also guaranteed that my output data is my original plain text) and how can it even know whether my key is correct or not?

As far as I understood crypto, the engine cannot predict whether the key is valid and should just give me random noise as output data and a successful return code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

脸赞 2024-12-18 09:52:52

如果您指定了 PCKS7 填充 (kCCOptionPKCS7Padding),那么它可以判断您是否未能正确解密 - 大多数情况下。错误密钥的随机结果有可能导致消息的最后几位看起来像有效的 PKCS7 填充。

它可以检测到的唯一另一件事是您的密钥是否根本不是有效长度。

If you specified PCKS7 padding (kCCOptionPKCS7Padding) then it can tell if you failed to decrypt it properly - most of the time. There is a chance that the random result of the wrong key could cause the last bits of the message to look like valid PKCS7 padding.

The only other thing it can detect is if your key is not a valid length at all.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文