`
kong6001
  • 浏览: 141340 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

MD5信息摘要

阅读更多
java 代码
  1. import java.io.FileInputStream;   
  2. import java.security.MessageDigest;   
  3.   
  4.     
  5. /**  
  6.  *   
  7.  * @author: fanzhi_kong  
  8.  * @version MD5Demo V1.0  
  9.  * @date:  2007 May 31, 2007 10:10:35 AM  
  10.  *  
  11.  */  
  12. public class MD5 {   
  13.        
  14.     static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',   
  15.             'a', 'b', 'c', 'd', 'e', 'f' };   
  16.   
  17.     /**生成字符串的MD5码  
  18.      *   
  19.      * @param s  
  20.      * @return  
  21.      */  
  22.     public final static String getMD5(String s) {   
  23.         try {   
  24.             byte[] strTemp = s.getBytes();   
  25.             MessageDigest md = MessageDigest.getInstance("MD5");   
  26.   
  27.             md.update(strTemp);   
  28.             return digest(md);   
  29.         } catch (Exception e) {   
  30.             System.out.println("Error:"+e.getMessage());   
  31.             return null;   
  32.         }   
  33.     }   
  34.   
  35.        
  36.   
  37.     /**生成文件的MD5  
  38.      *   
  39.      * @param path 文件完整路径  
  40.      * @return  
  41.      */  
  42.     public final static String getMD5File(String path) {   
  43.         try {   
  44.             MessageDigest mDigest = MessageDigest.getInstance("MD5");   
  45.   
  46.             // 读取文件   
  47.             final int SIZE = 1024;   
  48.             FileInputStream in = new FileInputStream(path);   
  49.             byte[] buff = new byte[SIZE];   
  50.             int len;   
  51.             while ((len = in.read(buff)) != -1) {   
  52.                 mDigest.update(buff, 0, len);   
  53.             }   
  54.             in.close();   
  55.             return digest(mDigest);   
  56.   
  57.         } catch (Exception e) {   
  58.             System.out.println("error:"+e.getMessage());   
  59.             return null;   
  60.         }   
  61.   
  62.     }   
  63.        
  64.        
  65.     /**计算摘要  
  66.      *   
  67.      * @param mDigest  
  68.      * @return  
  69.      */  
  70.     private static String digest(MessageDigest mDigest) {   
  71.         byte[] md = mDigest.digest();   
  72.         int j = md.length;   
  73.         char str[] = new char[j * 2];   
  74.         int k = 0;   
  75.         for (int i = 0; i < j; i++) {   
  76.             byte byte0 = md[i];   
  77.             str[k++] = hexDigits[byte0 >>> 4 & 0xf];   
  78.             str[k++] = hexDigits[byte0 & 0xf];   
  79.         }   
  80.         return new String(str);   
  81.     }   
  82.   
  83.     /**  
  84.      * @param args  
  85.      */  
  86.     public static void main(String[] args) {   
  87.         // System.out.println(MD5.getMD5("astro123456"));   
  88.         // System.out.println(MD5.getMD5("123456"));   
  89.   
  90.         String path = "C:/tdemo.log";   
  91.         String path1 = "C:/tdemo1.log";   
  92.         String path2 = "C:/ftpupload/越狱111.rmvb";   
  93.          System.out.println(MD5.getMD5File(path));   
  94.           System.out.println(MD5.getMD5File(path1));   
  95.         long beginTime = System.currentTimeMillis();   
  96.         System.out.println(MD5.getMD5File(path2));   
  97.         long endTime = System.currentTimeMillis() - beginTime;   
  98.         System.out.println("计算时间为:" + endTime / 1000 + " s");   
  99.   
  100.     }   
  101.   
  102. }  
分享到:
评论

相关推荐

    md5.js 前端MD5信息摘要算法

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...

    MD5 信息摘要算法 java版

    java版 MD5 信息摘要算法 它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。

    md5 信息摘要算法源码

    C语言实现的MD5信息摘要算法源码,通常包括以下几个关键部分: 1. **初始化函数**:MD5算法开始时,会初始化四个32位的变量,A、B、C和D,以及一个64字节的缓冲区。这些变量的初始值是预定义的常量,用于后续的计算...

    MD5信息摘要算法,算法用VC++编程实现,并有示例,很清楚地明白MD5算法

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的输入数据转换成固定长度的128位(16字节)摘要值。这个摘要值具有不可逆性,即无法从摘要恢复原始数据,因此常用于数据完整性校验和...

    C++ MD5信息摘要源代码

    c++编写的面向对象的MD5信息摘要源代码,包括类头文件和函数定义cpp文件

    信息-摘要算法5(MD5)Java实现

    MD5主要是通过特定的hash散列方法将文本信息转换成简短的信息摘要,用以验证信息的完整性。一般用于数字签名。 用Java实现的一个例子。

    前端加密插件md5.js

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...

    md5加密算法 C语言(经过测试验证完整版)

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...

    MD5加密工具(VC源码)

    在标签中提到的"MD5信息摘要计算工具",这里的“信息摘要”是指通过MD5算法得到的文件的特征表示,它能反映文件的原始内容,但无法还原出原始数据,因为MD5是不可逆的。计算MD5的过程通常包括读取文件内容,逐块处理...

    md5 加密,密码序列号

    MD5即Message-Digest Algorithm 5(信息-摘要算法 5)...唯一的MD5信息摘要。 MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的 安全散列算法SHA。

    MD5报文摘要算法代码

    为了创建一个完整的MD5类或函数,你需要提供一个接口,允许用户传递任意长度的字节流,并返回计算出的MD5摘要。这个接口可能包括`Update`方法用于添加数据,`Finalize`方法用于完成计算并返回摘要,以及可能的`Reset...

    javascript----md5加密算法

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...

    MD5_MessageDigest_java_md5_消息摘要_

    MD5(Message-Digest Algorithm 5)是一种广泛用于信息安全领域的哈希函数,它能将任意长度的数据转换为固定长度的输出,通常是32位的16进制字符串。在Java中,我们可以使用`java.security.MessageDigest`类来实现MD...

    MD5摘要算法文档.txt

    此文本文档是MD5信息摘要算法的描述文档(英文),描述了MD5摘要算法的具体实现,并提供了C语言参考代码,此文件是本人为防止原链接失效而作的备份,如不想消耗积分,请查看此文档的原链接...

    MD5CLASS信息-摘要算法

    它的全称“Message-Digest Algorithm 5”表明它是一个信息摘要算法,旨在将任意长度的数据转化为固定长度的摘要输出,通常是128位,通常以32位的十六进制数表示,即一个32字符的字符串。这个过程被称为哈希化,它...

    RFC1321_MD5 信息-摘要算法.doc

    MD5引入了更复杂的运算和额外的轮数,使得攻击者更难以找到两个不同的输入数据,它们会产生相同的MD5摘要,即减少碰撞的可能性。 然而,尽管MD5在设计时被认为是安全的,随着时间的推移,其安全性受到了严重质疑。...

    MD5 报文摘要算法 源码

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的输入数据转换为固定长度的128位(16字节)摘要,这个摘要可以视为输入数据的一种指纹。MD5算法的设计目的是确保即使是最小的输入...

    java调用MD5加密方式计算摘要值(有界面)

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的信息映射为固定长度的摘要值。在Java中,MD5主要用于数据的完整性校验和密码存储,因为其不可逆性,即使原始数据被篡改,通过MD5...

    MD5加密算法,信息摘要!!!

    MD5的主要用途是用于数据完整性校验和信息摘要,确保数据在传输或存储过程中未被篡改。 MD5的工作原理基于密码学中的散列函数概念。它通过一系列的数学运算,包括位操作、异或、循环左移等,将输入信息转化为不可逆...

    md5.js 2.19.0版本

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。它的应用场景包括:用户注册时确认密码...

Global site tag (gtag.js) - Google Analytics