Java中使用MD5加密
摘抄自:https://my.oschina.net/zjllovecode/blog/1592952
用户管理是一个框架要提供的基本功能,一个用户的基本信息包括登录名和密码。密码是不能直接以明文形式保存到数据库中的,必须加密。在加密算法上,使用MD5摘要算法,原因有二:
- 这个算法是单向的,即使得到密文,也无法推断出明文。
- 无论密码有多长,通过MD5计算之后得到的是一个固定长度的结果,有利于数据库的设计
java中提供了MD5算法的库很多,包括java本身就提供了java.security.MessageDigest类,还有其他的例如fast md5的实现。
既然使用了Spring,那就应该用它提供的算法。查了一下,Spring的确是提供了MD5实现的,方法如下
import org.springframework.util.DigestUtils;
...
String encodeStr = DigestUtils.md5DigestAsHex("mypassword".getBytes());
实现:
public class MD5 {
//加入一个盐值,用户混淆
private final static String salt = "sdaf6546y65l;uq234o;i";
public static String getMd5(long message){
String base = message + "/" + salt;
String md5 = DigestUtils.md5DigestAsHex(base.getBytes());
return md5;
}
public static void main(String[] args) {
System.out.println(getMd5(123456));
}
}