`
cesul
  • 浏览: 30943 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

一个MD5压缩算法的实现

阅读更多
import java.security.MessageDigest;

/* 传入参数:一个字节数组  
 * 传出参数:字节数组的 MD5 结果字符串  
 */
public class MD5 {
	public static String getMD5(byte[] source) {
		String s = null;
		char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
				'a', 'b', 'c', 'd', 'e', 'f' }; // 用来将字节转换成十六进制表示的字符

		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(source);
			byte tmp[] = md.digest();
			// MD5 的计算结果是一个 128 位的长整数,
			// 用字节表示就是 16 个字节
			char str[] = new char[16 * 2]; // 每个字节用十六进制表示的话,使用两个字符,
			// 所以表示成十六进制需要 32 个字符
			int k = 0;
			// 表示转换结果中对应的字符位置
			for (int i = 0; i < 16; i++) { // 从第一个字节开始,将 MD5 的每一个字节
				// 转换成十六进制字符
				byte byte0 = tmp[i];
				// 取第 i 个字节
				str[k++] = hexDigits[byte0 >>> 4 & 0xf];
				// 取字节中高 4 位的数字转换,
				// >>> 为逻辑右移,将符号位一起右移
				str[k++] = hexDigits[byte0 & 0xf];
				// 取字节中低 4 位的数字转换
			}
			s = new String(str);
			// 将换后的结果转换为字符串
		} catch (Exception e) {
			e.printStackTrace();
		}
		return s;
	}

	public static void main(String[] args) {
		System.out.println(MD5.getMD5("http://topic.csdn.net/u/20110314/22/F40DDE47-4AD4-4E9E-B5CF-F24B1E343240.html".getBytes()));;
	}
	
}
分享到:
评论

相关推荐

    用MFC实现的MD4压缩算法

    在输入框中输入一个字符串,点击MD4按钮,就能得到这个输入字符串的MD4值。供学习压缩算法的XDJM参考。这个小程序可以帮助MFC初学者学习框架,又可以帮助大家学习MD4压缩算法。

    密码学MD5加密算法实现源代码(vc++)

    MD5加密算法实现的源代码,vc++实现,如有错误请联系我!仅供参考学习!

    MD5算法(C语言实现)

    该算法实现简单易懂,并交有权威性,相信可以给需要学习MD5的人很大的帮助!

    C++实现MD5算法程序设计与实现.zip

    对于输入的任一不定长度信息, MD5算法在对最后一块进行填充后用512个比特对其进行分组,使用压缩函数将其生成4个32比特的数据,合并为128比特的信息摘要。MD5实现的基本过程为填充,分块,缓冲区初始化,循环压缩,...

    C语言MD5算法实现

    C语言实现MD5,经测试验证,散列过程完全正确,可供开发者使用!

    MD5 小写 C语言

    Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供...4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

    md5加密ASP的实现

    Belts)概念虽然MD5比MD4稍微慢些但却更为安全这个算法很明显由 4个和MD4设计有少许区别步骤组成在 MD5算法中信息-摘要大小和填充必要条件和MD4完全相同DenBoer和Bosselaers曾发现MD5算法中假冲突 (Pseudo-Collisions...

    mysql与mssql的md5加密语句

    您可能感兴趣的文章:MySQL加密和解密实例详解Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享PHP MySQL应用中使用XOR运算加密算法分享MySQL 加密/压缩函数mysql双向加密解密方式用法详解MySQL 整表加密...

    Java实现的Base64、MD5、3DES三种工具

    该类使用了java.security.MessageDigest类来实现MD5加密,并提供了一个静态的方法MD5()来计算字符串的MD5值。 三、3DES加密工具 3DES(Triple Data Encryption Algorithm)是一种对称加密算法,它使用三个不同的...

    【图像压缩】基于主成分分析PCA算法实现图像压缩matlab源码.md

    【图像压缩】基于主成分分析PCA算法实现图像压缩matlab源码.md

    md5 加密,密码序列号

    MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个 唯一的MD5信息摘要。 MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所...

    基于C++设计与实现MD5算法程序【100011830】

    对于输入的任一不定长度信息, MD5算法在对最后一块进行填充后用512个比特对其进行分组,使用压缩函数将其生成4个32比特的数据,合并为128比特的信息摘要。MD5实现的基本过程为填充,分块,缓冲区初始化,循环压缩,...

    md5.main.js资源

    Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供... 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

    基于Huffman+RunLength+LZW实现的无损压缩算法的文件压缩的python源码+文档说明

    基于Huffman+RunLength+LZW实现的无损压缩算法的文件压缩的python源码+文档说明 游程编码 比特流中最简单的冗余形式就是一长串重复的比特. 游程编码对这些重复比特计数, 交替保存0和1的长度, 实现"压缩". 适合大量...

    【图像压缩】基于FFT实现图像压缩matlab源码含GUI.md

    【图像压缩】基于FFT实现图像压缩matlab源码含GUI.md

    基于Shannon+Fano+Huffman实现的无记忆压缩算法C++源码+文档说明

    本文着重在于介绍香农、费诺、哈夫曼3个无记忆压缩算法的操作过程和程序实现,不太细扣这些算法的原理。另外,本文会提到很多名词,如码字、码长、信息量、码树、唯一可译码、前缀码等概念,这里也不作解释了,可...

    【压缩感知】基于DeSCI算法实现视频压缩感知matlab源码.md

    各类代码,适合新手学习,电子书免费领取加我

    VB的算法源码集合,包括压缩、解压、加密等(共33个)

    VB的算法源码集合(共33个)解压密码是: lob.cn ...VB下实现MD5加密算法源码 财务中将数字转换成中文大写 带输入功能的手写文字识别程序 顶级AES加密类模块 高级指纹分算法析源代码 最长公共子序列 。。。。

    基于GAP_TV算法实现视频压缩感知matlab源码.md

    各类代码,适合新手学习,电子书免费领取加我

    ios-MD5加密的两种形式.zip

    MD5即Message-Digest Algorithm 5,用于确保信息传输完整一致。...MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)

Global site tag (gtag.js) - Google Analytics