MD5加密,比如数据库中密码等敏感字段需要加密存储,核对密码时先以同样的方式对用户输入的密码进行加密,再与数据库中存储的密码比较。
MD5加密有很多种实现方式,此处介绍2种。
public class MD5Util { public static String getMD5Str(String str) { byte[] digest = null; try { MessageDigest md5 = MessageDigest.getInstance("md5"); digest = md5.digest(str.getBytes("utf-8")); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } //16是表示转换为16进制数 String md5Str = new BigInteger(1, digest).toString(16); return md5Str; } }
上面试自己封装,太麻烦,Spring已经给我们封装好了。
String md5Str = DigestUtils.md5DigestAsHex("原串".getBytes());
效果都是一样的。
只使用md5加密是不行的,很容易被破解。常见的做法有:
这2种方式方式经常一起使用。
原文:https://www.cnblogs.com/chy18883701161/p/12693162.html