MD5加密Java代码?别找了,就这30行直接抄

📅 2026/7/7 5:28:04 👁️ 阅读次数 📝 编程学习
MD5加密Java代码?别找了,就这30行直接抄

到了学期末的时候, 要做项目, 这个项目需要对用户密码采取MD5加密, 为此在网上查找了好多资料, 之后进行了修改, 还给修改后的内容加上了注释, 现在把源码张贴上来。

org..util; java.io.; java..; java..tion; /** * 32位MD5加密,验证 * @ */ class MD5 { /**

* 将指定的字符串用MD5加密

* @param 需要加密的字符串

* @ 加密后的字符串

*/ ( ){ = null; char

= {//用来将字节转换成 16 进制表示的字符

其中包含, '0', '1', '2', '3', '4', '5', '6', '7' , '8', '9', 除此以外还有, 'a', 'b', 'c', 'd', 'e', 'f'。

if( != null){ try {

//返回实现指定摘要算法的 对象

md = .("MD5");

//使用utf-8编码将字符串编码并保存到字节数组

byte

= .("utf-8");

//使用指定的 byte 数组更新摘要

md.();

对哈希计算予以完成, 得借助执行像填充这类的最终操作, 其结果呈现为一个长整数, 这个长整数是128位的。

byte

tmp = md.();

//用16进制数表示需要32位

char

str = new char

32

对于, 整型变量i赋值为0, 同时整型变量j赋值为0, 当i小于16时, i进行自增。

//j表示转换结果中对应的字符位置

//从第一个字节开始,对 MD5 的每一个字节

//转换成 16 进制字符

byte b = tmp

//取字节中高 4 位的数字转换

//无符号右移运算符>>> ,它总是在左边补0

要知道, 0x是表明它后面跟着的属于十六进制的数字, 其中, f转化为十进制最终呈现的结果是15。

str

j++

=

b>>>4 & 0xf

// 取字节中低 4 位的数字转换

str j++ = b&0xf = new (str);//结果转换成字符串用于返回 } catch (tion e) {

//当请求特定的加密算法而它在该环境中不可用时抛出此异常

e.(); } catch ( e) { //不支持字符编码异常 e.(); ; //使用MD5检查密码 (, ){ if(()。(())){ true; false;