位置:首页 » 文章/教程分享 » JAVA aes加解密在mac中的问题
现象描述:
windows上加解密正常,MAC上加密正常,解密时发生如下异常:
javax.crypto.BadPaddingException: Given final block not properly padded
       at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
       at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
       at com.sun.crypto.provider.AESCipher.engineDoFinal(DashoA13*..)
       at javax.crypto.Cipher.doFinal(DashoA13*..)
解决后代码如下:
KeyGenerator keyGen = KeyGenerator.getInstance("AES");  
 
String pwd = "passord";  
SecureRandom random=SecureRandom.getInstance("SHA1PRNG");
random.setSeed(pwd.getBytes());  
keyGen.init(128, random);  
SecretKey skey = keyGen.generateKey();  
byte[] raw = skey.getEncoded();  
 
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");