解决linux服务器下AES解密异常、相同内容每次加密结果都不同

现象描述

windows下加解密正常,部署linux服务器后解密抛出异常

javax.crypto.BadPaddingException: Given final block not properly padded

相同文本, linux下每次AES加密结果都不同

解决办法

private static SecretKeySpec getSecretKey(final String key) throws NoSuchAlgorithmException {
	// 返回生成指定算法密钥生成器的 KeyGenerator 对象
	KeyGenerator kg = KeyGenerator.getInstance(KEY_ALGORITHM);
	SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
	secureRandom.setSeed(key.getBytes());
	kg.init(128, secureRandom);
	SecretKey secretKey = kg.generateKey();
	return new SecretKeySpec(secretKey.getEncoded(), KEY_ALGORITHM);// 转换为AES专用密钥
}
posted @ 2020-09-03 16:05  pengsn  阅读(1143)  评论(0编辑  收藏  举报