MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

MD5 算法底层原理,简单概括起来,MD5 算法的过程分为四步:处理原文,设置初始值,循环处理分组数据,拼接结果。

这里我们用Java自带的MessageDigest工具类实现:

 /*** 获得Md5加密** @param str 原字符串* @return 加密后的字符串*/public static String strToMd5(String str) {String md5Str = null;if (str != null && str.length() != 0) {try {//获取md5对象MessageDigest md = MessageDigest.getInstance("MD5");//将字符串转换为字节数组md.update(str.getBytes());//信息摘要对象对字节数组进行摘要,得到摘要字节数组byte b[] = md.digest();int i;StringBuffer buf = new StringBuffer("");//把摘要数组的每一个字节转换成16进制for (int offset = 0; offset < b.length; offset++) {i = b[offset];if (i < 0) {i += 256;}if (i < 16) {buf.append("0");}//将字节数组转换为16进制字符串buf.append(Integer.toHexString(i));}//32位md5Str = buf.toString();//16位//md5Str = buf.toString().substring(8, 24);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}}return md5Str;}

详细学习参考:https://blog.csdn.net/JunhuiXie/article/details/100630841

MD5加密——使用Java自带的MessageDigest工具类实现相关推荐

  1. java web 项目 常用 小工具类 ~~~~

    java web 项目 常用 小工具类 ~~~~ 一 .DateUtil  日期工具类 package com.devframe.common.util;import java.text.Simple ...

  2. java 项目中常用的工具类总结

    1.文件 1.根据图片的链接,下载图片 package com.lingxu.module.BigDataJoinMessage.util;import java.io.FileOutputStrea ...

  3. (转)JAVA 十六个常用工具类

    (转)JAVA 十六个常用工具类 一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流.socket.或者selector且不抛出异常.通常放在f ...

  4. java inputtools_Java后台开发常用工具类

    本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...

  5. java常用地图坐标系转换工具类,支持谷歌,腾讯,百度等主流的地理坐标转换

    package com.shen.springboot.redis.util;import java.util.ArrayList; import java.util.HashMap; import ...

  6. java 兼容excel_Java解析Excel工具类(兼容xls和xlsx)

    依赖jar org.apache.poi poi-ooxml 4.0.1 ExcelUtils.java package javax.utils; import java.io.File; impor ...

  7. java中定义一个CloneUtil 工具类

    其实所有的java对象都可以具备克隆能力,只是因为在基础类Object中被设定成了一个保留方法(protected),要想真正拥有克隆的能力, 就需要实现Cloneable接口,重写clone方法.通 ...

  8. 【java笔记】Collections集合工具类

    java.utils.Collections是集合工具类,用来对集合进行操作 常用方法: public static<T>boolean addAll(Collection<T> ...

  9. JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)

    JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...

  10. Java(35):Java Base64编码和解码工具类

    Java Base64编码和解码工具类 Base64Util工具类: package com.ciphergateway.utils; import java.io.UnsupportedEncodi ...

最新文章

  1. windows配置nginx实现负载均衡集群
  2. mysql字段中ID值自动增长
  3. 关于collect2: cannot find ld的解决办法
  4. Linux网卡改为动态过去IP,Linux修改网卡ens33为eth0以及centos7下修改动态IP为静态IP地址...
  5. cordova 支付_Cordova打包教程(H5项目打包成ipa)
  6. java8 gc配置_基于JDK8的JVM参数设置和GC日志解读
  7. AcWing 844. 走迷宫(BFS or DP)
  8. 优酷网架构学习和揭秘
  9. linux服务器下安装phpstudy 如何命令行进入mysql
  10. 阿里云移动端播放器高级功能---直播时移 1
  11. 人工智能2021截稿日期_2019年136个国际学术会议资讯 (含截稿日期)
  12. 美国人口普查数据预测收入sklearn算法汇总2: 特征编码, 特征选择, 降维, 递归特征消除
  13. CPU占用100% 解决方法 (小莫)
  14. matlab中si是什么意思,Sitsang是什么意思
  15. python实现股票历史数据可视化分析
  16. ins 登录发现未知网络_如何发现未知的知识
  17. Flume从入门实战到精通再到面试一文搞定
  18. linux 键盘测试程序员,程序员之家打字测试
  19. MySQL系列之Natural Join用法
  20. 数字图像处理 使用opencv+python识别七段数码显示器的数字

热门文章

  1. U8恢复记账操作步骤
  2. 使用POI创建PPT
  3. 工程笔记阶段1-DAC正弦波实验
  4. phpcms手机端去掉index.php,如何取消phpcms v9手机门户中文章详情页模板中内容被自动分页...
  5. 微电子学属于计算机专业吗,微电子学
  6. photoshop 插件_Photoshop的光度模式
  7. EViews10.0程序安装及注意事项
  8. 光伏逆变器MPPT基本算法介绍-李星硕
  9. 粒子群算法(PSO)光伏发电 MPPT实现多峰值寻优,阴影遮蔽光伏发电算法 使用s函数编写粒子群算法,阴影遮蔽,实现多峰值寻优
  10. 0xe06d7363怎么解决(0xe06d7363怎么解决DNF)