在使用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环境的变化,解决了解密异常的问题。