问题:AES算法在windows下可以正常加密、解密,上传到服务器之后,无法正常工作,每次加密的结果都是随机的
经检查发现,是加密的密钥在Linux下随机生成造成的。
原代码:
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();
修改后代码:
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(password.getBytes());
kgen.init(128, secureRandom);
SecretKey secretKey = kgen.generateKey();
本文介绍了解决AES加密算法在不同平台(Windows与Linux)上的一致性问题。通过调整密钥生成方式,确保了使用相同的密码种子时,无论在哪种操作系统下都能生成相同的密钥,从而实现一致的加密效果。
1250





