Java md5加密
MD5加密很常用,比如数据库中密码等敏感字段需要加密存储,核对密码时先以同样的方式对用户输入的密码进行加密,再与数据库中存储的密码比较。
MD5加密有很多种实现方式,此处介绍2种
1、使用JDK自带MessageDigest
1 public class MD5Util { 2 3 public static String getMD5Str(String str) { 4 byte[] digest = null; 5 try { 6 MessageDigest md5 = MessageDigest.getInstance("md5"); 7 digest = md5.digest(str.getBytes("utf-8")); 8 } catch (NoSuchAlgorithmException e) { 9 e.printStackTrace(); 10 } catch (UnsupportedEncodingException e) { 11 e.printStackTrace(); 12 } 13 //16是表示转换为16进制数 14 String md5Str = new BigInteger(1, digest).toString(16); 15 return md5Str; 16 } 17 18 }
2、使用Spring自带的DigestUtils
上面是自己封装,太麻烦,Spring已经给我们封装好了。
String md5Str = DigestUtils.md5DigestAsHex("原串".getBytes());
说明
只使用md5加密是不行的,很容易被破解。常见的做法有:
- 先对原串进行一些处理,比如先给它拼接一个字符串常量,再进行md5加密。即使对方解密,也获取不到原串。
- 使用多种加密算法。比如先用md5加密,再对加密的结果使用其它加密算法进行加密。比如先使用md5加密,对加密的结果再次使用md5加密。
这2种方式方式经常一起使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示