编程语言
首页 > 编程语言> > 检查JAVA中的加密密钥正确性

检查JAVA中的加密密钥正确性

作者:互联网

我正在使用BouncyCastle在CBC模式下使用AES和PKCS5填充来加密/解密某些文件:

Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding", "BC");

现在有两个问题:

>如何检查提供的解密数据密钥是否正确?
>如何检查加密输入是否未触及(例如,用户未使用HEX编辑器更改)?

谢谢

解决方法:

您可以使用类似CCM或GCM的AEAD mode,代替CBC.这些模式对加密消息进行身份验证,因此如果使用了错误的密钥,或者密码文本已被更改,您可以检测到它.但是你无法区分这些情况.

Java 7的GCM加密API支持,但Oracle Java实现附带的SunJCE提供程序尚不支持它.您可以通过BouncyCastle等第三方提供商获得支持.

如果您使用其他加密服务(如数字签名或消息验证代码),则可以实现相同的功能.

标签:jce,java,cryptography,bouncycastle,integrity
来源: https://codeday.me/bug/20190725/1537574.html