在解密AES中密钥不正确时,没有发现任何异常

时间:2014-11-27 16:21:07

标签: encryption aes

我使用AES加密/解密来检索数据并解密。我使用了一个不正确的密钥进行解密,我没有得到任何错误或异常我得到一个像这样的奇怪语言的句子:

  

" 0ϵ 0 ?? YP *:???$ Y ??? S n中"

如何在解密错误时获得异常。我放了很多异常,比如CryptoTokenException,CryptoUnsupportedOperationException,UnsupportedEncodingException,我没有捕到任何异常。

我能做些什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要进行一些完整性检查,以确保它已正确加密,传输和解密。完整性检查也会被操纵,这就是必须进行身份验证的原因。 AES本身和某些操作模式(如CBC)没有完整性检查功能。如果密文以某种方式被改变,大多数时候你可以毫无问题地解密它,但是得到的明文被打破了。在某些情况下,操作密文的末尾可能会触发填充异常。

Crypto.SE有一些材料:Should we MAC-then-encrypt or encrypt-then-MAC?最简单和最安全的方法是使用一些经过验证的密码模式,如GCM或CCM,因为滚动自己的加密始终不是一个好主意。您可能会引入破坏该计划的实施缺陷。