MD5加密
2015-11-22 22:19
281 查看
java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,即生成散列码,通过数据
中单向的哈希函数,接收任意长度的数据生成固定长度的哈希值,MD5就是其中的一种加密算法
一、MD5简介
任何数据经过MD5加密后值是唯一的,因此可以用来作为数据的唯一标识
MD5特点:
压缩性:任意长度的数据都会被经过MD5加密后都是长度固定
抗修改性:对源数据有任何改动,最后得到的MD5值都会有很大的区别
强抗碰撞:已知原数据及其MD5值,那么再找一个具有相同MD5值的数据(伪造数据)是很难的
二、使用
1.通过MessageDigest类得到加密器
2.把要加密的数据流传入加密器
3.调用.digest方法,返回MD5值(32位字符)
下面看一个例子
<span style="white-space:pre"> </span>//得到加密器 MessageDigest digest = MessageDigest.getInstance("MD5"); //把文件转换为流 FileInputStream fis = new FileInputStream(file); int len =0; byte[] buffer = new byte[1024]; while((len=fis.read(buffer))!=-1){ //加密器读取流文件 digest.update(buffer, 0, len); } //返回字节数组 byte[] result = digest.digest(); StringBuilder sb = new StringBuilder(); for(byte b:result){ int number = b&0xff; String str = Integer.toHexString(number); if(str.length()==1){ sb.append("0"); } sb.append(str); } System.out.println(sb.toString());
通过对自己数组遍历,转换为十六进制,最后拼接为字符串
三、应用
1.对apk的加密,利用MD5加密后的唯一性可以用来查找用户手机上一些非法和恶意的软件
2.让大容量信息在数字签名软件签署私人密钥前被压缩成一种保密格式
3.用户密码的保护,把明文密码加密后可以有效防止用户密码被盗的危险
相关文章推荐
- UWP开发入门(二)——RelativePanel
- sed for windows 双引号内部内容的替换
- Tiny4412之串口(Uart)驱动编写
- 负载均衡
- 读书笔记--开发环境配置中的坑
- Python_文件对象类型及其读写函数详解
- 王者震荡市如何飞身换马
- iOS 百度定位实现
- zzuli生化危机(dfs)
- contiki 学习记录
- # 欢迎使用Markdown编辑器写博客
- iOS 事件传递流程
- SAML在SSO中的应用
- centos6.4中安装java,编译和运行java的一个例子
- 叠筐
- ASP字符串转换函数用法
- linux下Oracle 10g安装(超级详细图解教程)
- 昌大大神养成计划之网页设计之路第五天
- Android读书笔记------Drawable
- Android高斯模糊、高斯平滑(Gaussian Blur)【2】