登录 |  注册
首页 >  编程语言 >  Java常用开发工具类案例代码 >  MD5加密工具类代码

MD5加密工具类代码

MD5加密工具代码如下:

package com.yukx.utils;
import java.math.BigInteger;
import java.security.MessageDigest;

public class MD5Util {
	
	public static String MD5Lower(String plainText) {
		try {
			// 获得MD5摘要算法的 MessageDigest 对象
			MessageDigest md = MessageDigest.getInstance("MD5");

			// 使用指定的字节更新摘要
			md.update(plainText.getBytes());

			// digest()最后确定返回md5 hash值,返回值为8位字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
			// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值。1 固定值
			return new BigInteger(1, md.digest()).toString(16);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
}

MD5加密工具的使用场景:

1.密码

可以当做密码验证,为了保证密码不在cmd5网站上破译,最好加盐及乱序,也可以只取一半md5的长度。md5是不可逆算法,只要保证算法不变,就能和数据库中的md5相匹配。

2.搜索

以搜索为例,你输入“csdn 博客” 和 输入“博客 csdn”的结果是不一样的,因为你搜索的时候他们对应的md5是不一样的,他们可以根据这个md5去查询内容。

3.版权

当一个视频或者音频创作出来的时候它的md5是唯一的,若以后有翻录等版本出来,即使画质,声音,文件名都一样,但是他们的md5验证是不一样的,所以可以验证版权。还比如用某一账户下载的视频它的账户信息也回和视频一起md5操作,如果以后这个人私自传播通过md5就可以去数据库中查找泄露版权的情况。

4.文件完整性的校验

当下载一个文件时,服务器返回的信息中包括这个文件的md5,在本地下载完毕时进行md5,将两个md5值进行比较,如果一致则说明文件完整没有丢包现象。

5.文件上传

文件上传时会上传文件的信息此时将文件的md5上传,服务器中存储这个md5值,并存储这个md5值所对应的已上传字节长度,比如未上传对应为0,已上传对应为-1,已上传200字节就对应200,这个上传的时候可以匹配到这个文件在服务器中的状态,方便做断点续传,只要源文件没有更改,即使换个名字,换个账户都可以在服务器找到对应的文件,所以当服务器中有已经上传完毕的此文件时,别人再上传这个文件就可以实现秒传.

<<上一课程
推荐文章
  • 之前看过一篇文章介绍H标签的使用方法:H1必须有只能是一个,H2标签可以是多个。不同标签的作用h1和h2标签主要是提高关键词的密度更容易让蜘蛛抓取我们首先要明白HEADER标签是什么。HEADER标签就是HTML语言中的h1到h6定义标题头的六个不同文字大小的TAGES。本质是为了呈现内容结构,共有
  • 高并发下如何设计秒杀系统?秒杀系统是网络商家为了促销等目的进行的网上限时抢购活动。比如某宝某东某夕夕上的秒杀。用户在规定的时间内,定时定量的秒杀,无论商品是否秒杀完毕,该场次的秒杀活动都会结束。秒杀系统具有瞬时流量、高并发读、高并发写以及高可用等特点。秒杀时会有大量用户在同一时间进行抢购,瞬时并发访
  • 经常做仓储管理系统,很少关注电商系统,之前兼职做过一个电商系统,其对应的商品档案就很容易和仓储管理系统混淆,今天抽个时间整理下他们在前端展示的区别和联系。一个电商系统,SPU、SKU、快照等设计的好坏,影响到后面的开发进度,以及架构的调整等。而SPU、SKU、快照又是一个电商系统的核心。SPU,是s
  • Java8新特性中最为重要的便是Lambda表达式和StreamAPI了,先来了解一下Lambda表达式吧。Lambda表达式Lambda表达式是一个匿名函数,我们可以将Lambda表达式理解为一段可以作为参数传递的代码,通过Lambda表达式,我们可以将Java程序变得更加简洁和灵活。来看一段程序
  • Java8中的Stream是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregateoperation),或者大批量数据操作(bulkdataoperation)。StreamAPI借助于同样新出现的Lambda表达式,极大的提高编程效率和
  • 要养成一个好的编码习惯从自己编码开始,对自己代码的合理化命名,编码不仅对自己有好处,而且别人也容易读懂你的代码。所以下载阿里的代码规范插件来约束自己凌乱的代码。阿里规范插件GitHub地址:https://github.com/alibaba/p3cIDEA安装该插件步骤:1.打开IDEA,File
学习大纲