目前最火的MD5加密,市面上已经出现了破解的方式,比如暴力破解等方式,当然在密码学上只要有破解的方法就会有新的加密方法,正所谓魔高一丈道高一尺,为了防止这一情况,出现了加盐的加密方式,何为加盐?加盐就是在明文密码前或后加入随机生成的字符,如随机生成四位字符,则这四位字符则是盐值,而密文密码则是加入盐值之后翻译成密文。
如何加盐?如下:
首先加入
生成四位字符:
//生成4位验证码
public static String generateCode(){
String str = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int length = str.length();
StringBuffer sb = new StringBuffer();
for(int i=0;i<4;i++){
int index = random.nextInt(length);
char c = str.charAt(index);
sb = sb.append(c);
}
return sb.toString();
}
然后明文加盐值生成密文
public String register2(String cliName,String cliRealname,String cliPassword1){
User user = new User();
String code = GeneralUtil.generateCode();
String MA = code+cliPassword1;
String md5Digest = MD5.getMD5Digest(MA);
user.setUsername(cliName);
user.setPassword(md5Digest);
user.setNickname(cliRealname);
user.setSalt(code);
boolean insert = user.insert();
if (insert){
return "redirect:/user/registerOk.jsp";
}
return "redirect:user/userRegister.jsp";
}