package com.tarena.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
/**
* 将原文str经过MD5摘要算法得到密文
* @param str 如: 1234
* @return "1234" 的摘要
*/
public static String md5(String str){
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] md5 = md.digest();
char[] ch = "0123456789abcdef".toCharArray();
StringBuilder buf = new StringBuilder();
for (byte b : md5) {
buf.append(ch[ b>>>4 & 0xf ]);
buf.append(ch[ b& 0xf ]);
}
return buf.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
System.out.println(md5("1234"));
}
}
分享到:
相关推荐
MD5 摘要算法的C语言实现,从 RFC1321 中摘出来的算法实现
在大端字节序系统上生成的MD5摘要可以直接与小端字节序系统的摘要比较,但如果在两个系统间传输摘要,需要进行字节顺序的转换。 8. **最后的位运算**:经过四轮迭代后,将四个中间变量进行最后的位运算,然后组合成...
在VC++环境中,开发人员通常需要计算文件的MD5摘要来验证文件的完整性和未被篡改。MD5算法生成一个128位的散列值,通常以32个十六进制数字的形式表示,这使得即使是微小的数据变化也会导致生成的MD5摘要显著不同。 ...
用户可以通过这些库轻松地对字符串、文件等进行MD5加密,得到的MD5摘要通常是一个32位的十六进制字符串,例如"MD5摘要加密"这个字符串的MD5值可能是"e10adc3949ba59abbe56e057f20f883e"。 总结来说,MD5摘要加密是...
MD5算法的目的是创建一个独特的“指纹”,如果文件内容稍有改动,其MD5摘要就会完全不同,因此可以用来检测文件是否被修改。 SHA1(Secure Hash Algorithm 1)是另一种哈希函数,它生成的是160位(20字节)的摘要,...
5. 结果整合:经过所有块的处理后,将四个工作寄存器的内容合并成一个128位的MD5摘要。 将MD5算法封装到DLL文件中,需要提供对外的接口,供其他程序调用。常见的接口可能包括以下几种: - 初始化函数:创建MD5上...
这个C++ MD5摘要工程是为了帮助开发者在他们的项目中集成MD5哈希计算功能,使得能够对数据进行快速而安全的校验。 **MD5的工作原理** MD5算法通过一系列复杂的数学运算(包括位操作、异或、加法等)将任意长度的...
在提供的"MessageSecurity"文件中,可能包含了一个具有图形用户界面(GUI)的Java应用程序,该程序允许用户输入文本并显示其MD5摘要值。这可能是为了教学目的,让用户直观地理解MD5加密的过程。这样的界面通常会包含...
### MD5摘要算法详解:Java实现 #### 一、引言 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,能够将任意长度的信息转化为一个固定长度(通常为128位)的散列值或摘要。这个摘要通常被用来验证...
4. **结果合并**:经过所有块的处理后,四个初始化变量会逐步更新,最终得到的就是128位的哈希值,也就是我们常说的MD5摘要。 在Android开发中,MD5常用于文件校验、用户密码存储和数据传输的完整性验证。例如,当...
论文:MD5摘要实现 来自.中国科学技术大学
C++语言实现的MD5加密算法,附有详细的注释说明。
当你下载一个文件后,可以计算其MD5摘要,然后与发布者提供的MD5值进行对比。如果两者匹配,说明文件在传输过程中没有损坏或被篡改。这也是为什么MD5常用于软件下载、镜像文件校验等场景。 然而,MD5的弱点在于它...
此文本文档是MD5信息摘要算法的描述文档(英文),描述了MD5摘要算法的具体实现,并提供了C语言参考代码,此文件是本人为防止原链接失效而作的备份,如不想消耗积分,请查看此文档的原链接...
用MD5消息摘要再用RSA进行签名~用MD5消息摘要再用RSA进行签名~用MD5消息摘要再用RSA进行签名~
4. **计算哈希**:使用`Update()`方法分批传递文件内容到MD5对象,最后调用`Final()`方法得到MD5摘要。 5. **输出结果**:将128位的MD5摘要转换为字符串,并打印或保存。 源代码可能如下: ```cpp #include #...
例如,一个API可能包含`MD5_Init()`、`MD5_Update()`(用于添加更多数据)、`MD5_Final()`(生成最终摘要)和`MD5_End()`(释放资源)等函数。 需要注意的是,尽管MD5在过去的很多年里被广泛应用,但由于其已知的...
这个项目可能涵盖了从读取文件内容到计算MD5摘要的完整过程,以及如何比较两个MD5摘要以判断文件或数据是否一致。你可以解压文件,运行其中的代码,以加深对MD5在Java中应用的理解。同时,也可以参考该项目的代码...
它能够将任意长度的数据转换为固定长度的128位(通常以32个十六进制数字表示)摘要,这种摘要具有不可逆性,即无法从MD5摘要反推出原始数据。MD5在信息安全领域主要用于数据完整性校验、密码存储和文件校验等场景。 ...
`testMd5`可能是用以测试MD5实现的示例程序,它可能包含一段代码,读取一个文件内容,然后计算并打印出该文件的MD5摘要,以此验证算法的正确性。 使用MD5时,需要注意的是,由于MD5算法的安全性问题,它已经不再...