Md5消息摘要
2016-07-14 12:05
204 查看
MD5(即Message Digest Algorithm)是一种hash散列算法不是加密算法,用于对一段信息产生信息摘要,以防止信息被篡改,是不可逆摘要算法(但是现在存在彩虹表可破解),主要用于校验数据一致性和数据签名.
还有SHA,SHA-1等摘要算法,其中SHA-1与MD5的最大区别在于其摘要比MD5摘要长32比特
主要相关步骤:
利用MessageDigest类用于为应用程序提供信息摘要算法的功能 接收任意大小的数据,输出固定长度的哈希值
(1)通过MessageDigest.getInstance("MD5")进行实例化。
(2)使用update()指定产生摘要的字节数组
(3)使用digest()方法来计算摘要(即生成散列码)
(4)将摘要结果数组(byte数组)转换为十六进制的字符串形式
还有SHA,SHA-1等摘要算法,其中SHA-1与MD5的最大区别在于其摘要比MD5摘要长32比特
public class Md5AndShaSignatue { public static void main(String[] args) { // TODO Auto-generated method stub String data = "12345"; String nd = md5(data); System.out.println(nd); } private static String md5(String data) { // TODO Auto-generated method stub try { // 获得MD5摘要算法的 MessageDigest 对象 MessageDigest mdInst = MessageDigest.getInstance("MD5"); // 使用指定的字节更新摘要 mdInst.update(data.getBytes()); // 获得密文 byte[] md = mdInst.digest(); // 把密文转换成十六进制的字符串形式 StringBuffer hexString = new StringBuffer(); // 字节数组转换为 十六进制 数 for (int i = 0; i < md.length; i++) { String shaHex = Integer.toHexString(md[i] & 0xFF); if (shaHex.length() < 2) { hexString.append(0); } hexString.append(shaHex); } return hexString.toString(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } }
主要相关步骤:
利用MessageDigest类用于为应用程序提供信息摘要算法的功能 接收任意大小的数据,输出固定长度的哈希值
(1)通过MessageDigest.getInstance("MD5")进行实例化。
(2)使用update()指定产生摘要的字节数组
(3)使用digest()方法来计算摘要(即生成散列码)
(4)将摘要结果数组(byte数组)转换为十六进制的字符串形式
相关文章推荐
- Activiti基础教程--02(初识Activiti流程设计工具、了解Activiti bpmn图表对应的XML文件)
- 线程间通信示例
- kubernetes代码阅读-apiserver之list-watch篇
- STL之unique()去重函数
- 《算法导论》第一天
- request方法大全
- 自控力 全书笔记
- js插件开发规范
- 支持向量机SVM算法原理笔记2
- 移动硬盘等外设安装KUbuntu
- Webbench网站压力测试
- Android 编程小问题及Android studio小技巧
- CG学习笔记
- 258. Add Digits
- 上拉刷新,下拉加载的靠谱的第三方。支持listview,scrollview,gridview等等
- mysql常用字符串操作函数大全,以及实例
- 美国买家因差评被中国商家邮件轰炸
- iOS开发数据库SQLite的使用
- Linux 压缩和解压
- MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist