MD5加密——使用Java自带的MessageDigest工具类实现
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工具类实现相关推荐
- java web 项目 常用 小工具类 ~~~~
java web 项目 常用 小工具类 ~~~~ 一 .DateUtil 日期工具类 package com.devframe.common.util;import java.text.Simple ...
- java 项目中常用的工具类总结
1.文件 1.根据图片的链接,下载图片 package com.lingxu.module.BigDataJoinMessage.util;import java.io.FileOutputStrea ...
- (转)JAVA 十六个常用工具类
(转)JAVA 十六个常用工具类 一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流.socket.或者selector且不抛出异常.通常放在f ...
- java inputtools_Java后台开发常用工具类
本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...
- java常用地图坐标系转换工具类,支持谷歌,腾讯,百度等主流的地理坐标转换
package com.shen.springboot.redis.util;import java.util.ArrayList; import java.util.HashMap; import ...
- 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 ...
- java中定义一个CloneUtil 工具类
其实所有的java对象都可以具备克隆能力,只是因为在基础类Object中被设定成了一个保留方法(protected),要想真正拥有克隆的能力, 就需要实现Cloneable接口,重写clone方法.通 ...
- 【java笔记】Collections集合工具类
java.utils.Collections是集合工具类,用来对集合进行操作 常用方法: public static<T>boolean addAll(Collection<T> ...
- JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)
JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...
- Java(35):Java Base64编码和解码工具类
Java Base64编码和解码工具类 Base64Util工具类: package com.ciphergateway.utils; import java.io.UnsupportedEncodi ...
最新文章
- windows配置nginx实现负载均衡集群
- mysql字段中ID值自动增长
- 关于collect2: cannot find ld的解决办法
- Linux网卡改为动态过去IP,Linux修改网卡ens33为eth0以及centos7下修改动态IP为静态IP地址...
- cordova 支付_Cordova打包教程(H5项目打包成ipa)
- java8 gc配置_基于JDK8的JVM参数设置和GC日志解读
- AcWing 844. 走迷宫(BFS or DP)
- 优酷网架构学习和揭秘
- linux服务器下安装phpstudy 如何命令行进入mysql
- 阿里云移动端播放器高级功能---直播时移 1
- 人工智能2021截稿日期_2019年136个国际学术会议资讯 (含截稿日期)
- 美国人口普查数据预测收入sklearn算法汇总2: 特征编码, 特征选择, 降维, 递归特征消除
- CPU占用100% 解决方法 (小莫)
- matlab中si是什么意思,Sitsang是什么意思
- python实现股票历史数据可视化分析
- ins 登录发现未知网络_如何发现未知的知识
- Flume从入门实战到精通再到面试一文搞定
- linux 键盘测试程序员,程序员之家打字测试
- MySQL系列之Natural Join用法
- 数字图像处理 使用opencv+python识别七段数码显示器的数字
热门文章
- U8恢复记账操作步骤
- 使用POI创建PPT
- 工程笔记阶段1-DAC正弦波实验
- phpcms手机端去掉index.php,如何取消phpcms v9手机门户中文章详情页模板中内容被自动分页...
- 微电子学属于计算机专业吗,微电子学
- photoshop 插件_Photoshop的光度模式
- EViews10.0程序安装及注意事项
- 光伏逆变器MPPT基本算法介绍-李星硕
- 粒子群算法(PSO)光伏发电 MPPT实现多峰值寻优,阴影遮蔽光伏发电算法 使用s函数编写粒子群算法,阴影遮蔽,实现多峰值寻优
- 0xe06d7363怎么解决(0xe06d7363怎么解决DNF)