Linux环境下AES解密异常问题解决方法

郑康臣 17 0 txt 2023-11-15 22:11:35

在使用AES进行加解密操作时,发现在Linux环境下出现解密异常的问题,具体表现为javax.crypto.BadPaddingException。经过分析,发现问题的关键在于SecureRandom实现的方式。SecureRandom实现完全取决于操作系统本身的内部状态,在Windows上每次生成的密钥都相同,而在Solaris或部分Linux系统上则不同。为了解决这一问题,建议调整SecureRandom的生成方式。原有代码为SecureRandom securerandom = new SecureRandom(tohash256Deal(key));,替换为:KeyGenerator keygen=KeyGenerator.getInstance("AES"); SecureRandom securerandom = new SecureRandom(tohash256Deal(key)); 替换后,通过keygen.init(weishu, securerandom);来适应Linux环境的变化,解决了解密异常的问题。

用户评论
请输入评论内容
评分:
暂无评论