今天部署项目时候遇到一个问题,在解密之前加密后的密码时候一直报空指针
查看一会发现解密报了一个异常
百度查看发现代码解密
Cipher cipher;
byte[] byteFina = null;
try {
Key key1 = obtainKey(key);
cipher = Cipher.getInstance(DES);
cipher.init(Cipher.DECRYPT_MODE, key1);
byteFina = cipher.doFinal(str);
} catch (Exception e) {
log.error("解密异常,e:{}",e);
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
修改
log.info("初始化加解密工具类");
if (key == null) {
return DEFAULT_KEY;
}
KeyGenerator generator = null;
try {
generator = KeyGenerator.getInstance(DES);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
SecureRandom secureRandom = null;
try {
secureRandom = SecureRandom.getInstance("SHA1PRNG");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
try {
secureRandom.setSeed(key.getBytes("utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
generator.init(secureRandom);
Key key1 = generator.generateKey();
generator = null;
log.info("key:{}",key1);
return key1;