Java生成MD5加密字符串代码实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java⽣成MD5加密字符串代码实例
(1)⼀般使⽤的数据库中都会保存⽤户名和密码,其中密码不使⽤明码保存。

有时候⽤MD5密码,很多语⾔都提供了将字符串⽣成为MD5密码的⽅法或函数。

MD5的加密算法是公开的。

有时候也可以⽤⾃⼰的字符串加密算法,这种加密算法是只有⾃⼰知道的。

(2)破解MD5的过程就是先算好⼤量或者所有可能的字符串的MD5数值,之后进⾏查询就可以破解。

虽然有些⽹站规定了密码的位数在6~20位之间,但是要事先计算这么多是字符串并有效的组织存储、查询还是相当⿇烦,相当慢的。

因为MD5的位数是固定的,⽐如16,32,64,⽽字符串的组合与长度是⽆穷尽的,这就有冲突啦。

但是如果知道了加密前字符串的长度是有固定范围的,⽐如6~20,这个还是可以破解的。

但是,如果不知道加密前字符的长度那么这就是⽆穷尽啦。

貌似现在还没有⼈能够破解吧。

MD5密码破解⽹站:可以百度搜索“”
(3)下⾯给出了⼀个java⽣成给定字符串的MD5密码的模块程序。

import java.security.MessageDigest;
public class Md5Test {
public void toMD5(String plainText) {
try {
//⽣成实现指定摘要算法的 MessageDigest 对象。

MessageDigest md = MessageDigest.getInstance("MD5");
//使⽤指定的字节数组更新摘要。

md.update(plainText.getBytes());
//通过执⾏诸如填充之类的最终操作完成哈希计算。

byte b[] = md.digest();
//⽣成具体的md5密码到buf数组
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
System.out.println("32位: " + buf.toString());// 32位的加密
System.out.println("16位: " + buf.toString().substring(8, 24));// 16位的加密,其实就是32位加密后的截取
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String agrs[]) {
new Md5Test().toMD5("LXD");//加密LXD
}
}
PS:这⾥再为⼤家提供2款MD5加密⼯具,感兴趣的朋友可以参考⼀下:
MD5在线加密⼯具:
在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密⼯具:。

相关文档
最新文档