MD5加密
来源:互联网 发布:阿里大于发送短信php 编辑:程序博客网 时间:2024/05/13 12:49
开发中经常涉及MD5(中文信息摘要、非对称性)的加密,用于确保信息传递过程中的完整一致性。它将数字、字母、汉字甚至是文件等解析为一串固定的字符值。例如用户密码的加密、文件上传时判断文件是否重复等……
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的
2、容易计算:原数据很容易生成MD5值
3、抗修改性:对原数据有任何的改动,生成的MD5值都不一样
4、强抗碰撞:不同原数据生成相同MD5值的概率极其小
实现上可以自定义生成MD5值方法,也可以使用封装好的生成MD5的方法库,例如Guava、commons.codec的DigestUtils、spring的工具类DigestUtils
一、Guava库生成md5
pom.xml中引入guava依赖
<!--guava依赖--><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>14.0.1</version></dependency>
测试代码:
public static void getMd5ByGuava() throws Exception { File file = new File("D:/测试图片.png"); String context = IOUtils.toString(new FileInputStream(file)); String md5 = Hashing.md5().newHasher().putString(context, Charsets.UTF_8).hash().toString(); System.out.println( md5);}
二、commons-codec库生成md5
pom.xml中引入commons-codec依赖
<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version></dependency>
测试代码:
public static void getMd5ByDigestUtil() throws Exception { try { File file = new File("D:/测试图片.png"); String context = IOUtils.toString(new FileInputStream(file)); String md5 = DigestUtils.md5Hex(context); System.out.println(md5); } catch (FileNotFoundException e) { e.printStackTrace(); }}
三、spring的工具类DigestUtils
DigestUtils类封装在spring-core包下
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.0</version></dependency>
测试代码:
String md5 = DigestUtils.md5DigestAsHex("sdfsds".getBytes());
阅读全文
1 0
- MD5加密
- MD5加密
- md5加密
- MD5加密
- md5加密
- MD5加密
- MD5加密
- md5 加密
- MD5加密
- md5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- MD5加密
- 物流运输 洛谷p1772
- Photoshop鼠绘教程:精美数码相机(转)
- 算账的学问(转)
- 我的人工智能梦(一、前言)
- webplayer电影地址与下载方法(转)
- MD5加密
- JSP基础知识
- 人工智能(三、三维初步构想)
- lisp语言(转自百度)
- 九连环的解法(收集)
- 路由
- 树莓派3B+ FTP 服务器(vsftpd)
- 玉女心经(转)
- 一个有哲理的故事--\"一头慷慨赴死的猪\"(转)