MD5加密算法JAVA实现
来源:互联网 发布:mac 画架构图工具 编辑:程序博客网 时间:2024/05/18 20:33
MD5加密算法JAVA实现
概述
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992).
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
MD5用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
算法原理
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448,N为一个非负整数,N可以是零。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,信息的位长=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。
Java中的MD5实现
MD5加密算法的Java实现如下所示:
import java.security.MessageDigest;public class MD5Util {/*** * MD5加密 生成32位md5码 * * @param 待加密字符串 * @return 返回32位md5码 */public static String md5Encode(String inStr) throws Exception {MessageDigest md5 = null;try {md5 = MessageDigest.getInstance("MD5");} catch (Exception e) {System.out.println(e.toString());e.printStackTrace();return "";}byte[] byteArray = inStr.getBytes("UTF-8");byte[] md5Bytes = md5.digest(byteArray);StringBuffer hexValue = new StringBuffer();for (int i = 0; i < md5Bytes.length; i++) {int val = ((int) md5Bytes[i]) & 0xff;if (val < 16) {hexValue.append("0");}hexValue.append(Integer.toHexString(val));}return hexValue.toString();}/** * 测试主函数 * * @param args * @throws Exception */public static void main(String args[]) throws Exception {String str = new String("neumzy");System.out.println("原始:" + str);System.out.println("MD5后:" + md5Encode(str));}}
1 0
- MD5加密算法,java实现
- java MD5 加密算法实现
- Md5加密算法java实现
- MD5加密算法JAVA实现
- java实现MD5加密算法
- java MD5加密算法实现
- MD5加密算法JAVA实现
- JAVA 实现MD5加密算法
- java的MD5加密算法实现
- java实现的MD5加密算法
- MD5加密算法(java实现)
- MD5加密算法的java实现
- MD5加密算法的java实现
- Java MD5加密算法的实现
- Java MD5加密算法的实现
- JAVA代码实现MD5加密算法
- MD5加密算法的java实现
- MD5加密算法的Java实现
- 简单线程的实现
- 字符串中查找删除
- 副作用与顺序点
- 数组链表的简单实现
- iOS 从一个syoryBoard 跳转到另一个stroyBoard 方法简介
- MD5加密算法JAVA实现
- ——int64与long long的使用
- iOS面试 类的扩展,分类,延迟的方法,懒加载
- ListView(列表视图)的使用方法
- 升级Xcode7之后的适配问题(插件、ATS等)
- Android应用开发架构概述
- js判断手机和pc端选择不同执行事件的方法
- canvas,paint的用法
- 4.4.5 Android 属性动画Animator