`
san_yun
  • 浏览: 2654430 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

MD5 算法总结

    博客分类:
  • md5
 
阅读更多

MD5总结

 

package com.medishare.platform.pharos.client.common;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 
 * @author jiangyunpeng
 *
 */
public class MD5 {

	private static String[] digits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
    //private static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
    
	 //返回形式为数字跟字符串
	private static String byteToArrayString(byte bByte) {
		int iRet = bByte;
		if (iRet < 0) {
			iRet += 256;
		}
		int iD1 = iRet / 16;
		int iD2 = iRet % 16;
		return digits[iD1] + digits[iD2];
	}

	 //转换字节数组为16进制字串
	private static String byteToString(byte[] bByte) {
		StringBuffer sBuffer = new StringBuffer();
		for (int i = 0; i < bByte.length; i++) {
			sBuffer.append(byteToArrayString(bByte[i]));
		}
		return sBuffer.toString();
	}
	
//	private static String byteToString(byte[] bt) {
//        int l = bt.length;
//
//        char[] out = new char[l << 1];
//
//        for (int i = 0, j = 0; i < l; i++) {
//            out[j++] = digits[(0xF0 & bt[i]) >>> 4];
//            out[j++] = digits[0x0F & bt[i]];
//        }
//
//        return new String(out);
//    }

	//
	public static String getMD5Code(Object obj) {
		String str = obj.toString();
		if (str == null || str.length() == 0) {
			return "0000000000000000";
		}
		String resultString = null;
		try {

			MessageDigest md = MessageDigest.getInstance("MD5");
			// md.digest() 该函数返回值为存放哈希值结果的byte数组
			byte[] out = md.digest(str.getBytes());
			System.out.println(out.length);
			resultString = byteToString(out);
		} catch (NoSuchAlgorithmException ex) {
			ex.printStackTrace();
		}
		return resultString.substring(8, 24);
	}

	public static void main(String[] args) {

		for (int i = 0; i < 10; ++i) {
			String md5 = MD5.getMD5Code(i);
			System.out.println(md5);
		}
	}
}
 

 

zhu

分享到:
评论

相关推荐

    matlab实现md5算法,md5算法详解,matlab

    总结来说,MATLAB实现MD5算法涉及的主要知识点包括:MD5算法的背景和用途,哈希函数的基本概念,MD5算法的四轮循环结构,FF、GG、HH、II四个非线性函数的作用,以及MATLAB中位运算和数组操作的应用。通过学习这个...

    md5算法流程图

    ### MD5算法详解 #### 一、概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的消息压缩成一个固定长度(128位)的散列值,通常用于数据完整性的校验、密码存储等场景。MD5算法的...

    MD5算法详细流程(pdf)

    ### MD5算法详解 #### 一、MD5算法概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它可以将任意长度的消息转换成一个固定长度的散列值,通常用来验证数据的完整性。MD5算法的核心在于它能够快速...

    MD5_matlab_md5algorithm_md5_matlabcode_MD5算法matlab_

    MD5(Message-Digest ...总结一下,`MD5.m`文件是一个MATLAB实现的MD5算法,它遵循了MD5的典型步骤:初始化、预处理、迭代计算和组合结果。这个功能可以用来计算任何输入数据的MD5摘要,以检查数据的完整性和一致性。

    MD5算法源码;加密算法

    5. **MD5总结**:将所有块处理的结果进行组合,通过一次简单的位运算生成最终的128位MD5摘要。 在"MD5Test"这个文件中,很可能包含了一个C++程序,用于演示MD5算法的实现。这个程序可能包含了以下组件: 1. **MD5...

    md5算法摘要实例

    总结来说,这个实例提供了在C++环境下使用MD5算法的具体方法,对于初学者理解MD5的原理和实践应用有着重要的参考价值。通过阅读和运行`md5c.c`和`testMd5`,你可以更好地了解MD5的计算过程,并掌握如何在自己的项目...

    md5加密算法

    ### MD5加密算法详解 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它能够接收任意长度的信息,并产生一个128位(16字节)的散列值。该算法由Ron Rivest在1991年设计,作为...

    java的MD5算法

    ### Java中的MD5算法 #### 一、简介 ...总结来说,Java中实现MD5算法相对简单,但需要理解其背后的原理和应用场景。通过上述内容的学习,可以帮助开发者更好地掌握MD5算法在Java中的使用方法及其背后的原理。

    MD5算法研究.pdf

    总结来说,MD5算法是信息安全领域中一个重要的里程碑,它在过去的几十年里为数据完整性提供了便利。然而,由于其安全性的逐渐降低,MD5现在已经不适合用于高安全性的需求,而是被更先进的哈希函数所替代。

    md5算法文档

    ### MD5算法详解 #### 一、概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的消息压缩为一个固定长度的摘要或“指纹”。该算法由Ron Rivest在1992年设计,旨在为数字签名应用...

    C# 实现MD5算法

    根据提供的信息,我们可以详细解析如何在C#中实现MD5算法。MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,用于生成一个128位(16字节)的散列值。它通常用于确保数据完整性和进行密码哈希处理等...

    MD5算法的实现

    总结,C语言实现MD5算法涉及多个步骤和概念,包括数据预处理、主循环运算、字节序处理以及结果转换。尽管MD5在安全性上已不再理想,但其在理解哈希函数的工作原理和C语言编程方面仍具有教育意义。

    MD5算法理论及其源码(珍藏版)

    总结来说,MD5算法是信息安全领域的一个重要工具,尽管其安全性已被削弱,但对于非安全场景的文件校验仍有价值。了解其原理、源码实现以及应用场景,对于深入理解信息安全和数据处理非常有帮助。

    md5算法C#的实现

    ### MD5算法在C#中的实现 #### 一、引言 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,能够将任意长度的信息转换为一个固定长度的128位(16字节)散列值。由于其计算速度快且散列值固定,常...

    MD5算法C语言实现

    ### MD5算法C语言实现详解 #### 一、概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它能将任意长度的数据转换成一个固定长度(通常是128位或16字节)的十六进制字符串。这种散列函数在信息...

    MD5算法研究

    ### MD5算法研究 #### MD5算法概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希算法,主要用于生成固定长度的消息摘要。MD5算法由Ronald L. Rivest于1991年在MIT Laboratory for Computer Science和...

    MD5值算法工具

    总结来说,MD5值算法工具是一个方便的数据校验工具,包含了MD5、SHA1和CRC32三种主流的校验算法。通过使用这款软件,用户能快速检查文件的完整性,并确保数据的一致性,这对于数据备份、软件分发以及网络传输等领域...

    MD5算法,以及怎么解密

    总结来说,MD5是一种不可逆的哈希算法,主要用于数据完整性验证,而DES是一种对称加密算法,可以进行数据的加密和解密。在实际应用中,MD5因安全性问题应谨慎使用,而DES虽然较老,但在某些场合仍可作为加密手段,但...

Global site tag (gtag.js) - Google Analytics