博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】Java生成对应字符串的MD5密码模块
阅读量:6326 次
发布时间:2019-06-22

本文共 1669 字,大约阅读时间需要 5 分钟。

原文网址:http://www.cnblogs.com/xudong-bupt/archive/2013/05/10/3070899.html

 (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     }}
你可能感兴趣的文章
物联网+云平台未来方向之一
查看>>
大作业项目
查看>>
北大校长王恩哥送给毕业学生的十句话
查看>>
IDC简报:2012年全球六大最佳主机服务器提供商
查看>>
HC3i论坛5月份热门资源30个
查看>>
mysqldump导出--数据+结构+(函数+存储过程)
查看>>
浏览器的渲染原理简介
查看>>
使用window.performance分析web前端性能
查看>>
获取系统当前时间参数date
查看>>
MySQL性能优化的最佳20+条经验
查看>>
exchange server 相关
查看>>
centos7系列安装vnc服务并授权用户访问
查看>>
CentOS mailx client
查看>>
字符串格式化
查看>>
Why Should You Choose Linux?
查看>>
NetScaler 12.1 发布
查看>>
checkpoint system management
查看>>
CentOS 6.5安全加固及性能优化_操作系统
查看>>
每天laravel-20160709|CallEvent
查看>>
我的友情链接
查看>>