.net - 使用 AesManaged 解密之前验证 key /IV ?或者在 CryptographicException 发生之前避免它?

标签 .net exception encryption aes

我基于此编写了一对 AES 加密/解密函数 example .

它工作得很好,直到我将错误的 key 或 IV 传递到我的解密函数中,此时我得到“填充无效且无法删除”。其他人已经讨论过的 CryptographicException。

我的问题是:是否有某种方法可以在异常发生之前验证 key /IV?也许某种校验和?或者只是捕获该异常的答案?

最佳答案

答案只是捕获异常。 IV 通常与加密消息一起发送,因此单独验证它没有什么意义。对于 key ,检查 key 值的常规方法是使用 KCV( key 检查值):

在这里查看 Poncho 对我的问题的回答:

https://crypto.stackexchange.com/questions/1930/sending-kcv-key-check-value-with-cipher-text

基本上,似乎不值得。当然,您的里程可能会有所不同。另一方面,向加密消息添加某种身份验证总是很有意义,但它仍然不会向您显示数据是否已损坏或被篡改,或者您的 key 是否错误......

关于.net - 使用 AesManaged 解密之前验证 key /IV ?或者在 CryptographicException 发生之前避免它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9948586/

相关文章:

c# - 多线程与多实例——选择哪个?

ruby-on-rails - 抑制 Rails 3.x 的 ActionView::MissingTemplate 异常

Delphi - 如何处理多个 except 类型

c# - 将错误代码大量转换为异常

java.lang.ArrayIndexOutOfBoundsException : -85 java alogrithm

c# - 在 Linux 上使用 .Net Core 和 OpenGL

c# - 您可以在 64 位 PC/OS 上安装 .NET Framework Client Profile 32 位版本吗?

用于 CGM 文件转换的 .NET 库

vba - Excel的工作表密码保护是如何工作的

file - 如何在 VBA (MS Access) 中检查文件加密