Java生成对应字符串的MD5密码模块

  (1)一般使用的数据库中都会保存用户名和密码,其中密码不使用明码保存。

      有时候用MD5密码,很多语言都提供了将字符串生成为MD5密码的方法或函数。MD5的加密算法是公开的。

      有时候也可以用自己的字符串加密算法,这种加密算法是只有自己知道的。

  (2)破解MD5的过程就是先算好大量或者所有可能的字符串的MD5数值,之后进行查询就可以破解。虽然有些网站规定了密码的位数在6~20位之间,但是要事先计算这么多是字符串并有效的组织存储、查询还是相当麻烦,相当慢的。

    因为MD5的位数是固定的,比如16,32,64,而字符串的组合与长度是无穷尽的,这就有冲突啦。但是如果知道了加密前字符串的长度是有固定范围的,比如6~20,这个还是可以破解的。

   但是,如果不知道加密前字符的长度那么这就是无穷尽啦。貌似现在还没有人能够破解吧。

       MD5密码破解网站 :http://www.cmd5.com/

  (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
     }
}

 

 

时间: 2024-09-28 18:01:26

Java生成对应字符串的MD5密码模块的相关文章

Java生成随机字符串的几种方式

1.生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random; //length用户要求产生字符串的长度 public static String getRandomString(int length){ String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Random random=new Random(); StringB

java生成zip文件,使用密码加密的问题

问题描述 我在项目中有这样的需求:使用java生成zip文件,然后使用密码加密生成好的zip文件,分别将zip文件和密码发送两封邮件给用户,用户使用密码解压zip文件. 现在zip文件生成没有问题,但是使用密码加密始终没有搞定,请教各位有没有什么办法可以解决? 我在网上找到一篇文章讲类似的解决方案 http://java.sys-con.com/node/1258827 文中使用了"winzipaes","sevenzipjbind","Bouncecas

java生成随机数(字符串)示例分享_java

用来生成简单的随机java生成随机数,大小+数字.没特符 复制代码 代码如下: package passwords;import java.util.Random;public class pwdGen { private Random rdseed=new Random();  /**  *@param  *length  password length;  *@param  *letters  boolean non-capital letters combination control; 

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

      (1)一般使用的数据库中都会保存用户名和密码,其中密码不使用明码保存.     有时候用MD5密码,很多语言都提供了将字符串生成为MD5密码的方法或函数.MD5的加密算法是公开的.     有时候也可以用自己的字符串加密算法,这种加密算法是只有自己知道的. (2)破解MD5的过程就是先算好大量或者所有可能的字符串的MD5数值,之后进行查询就可以破解.虽然有些网站规定了密码的位数在6~20位之间,但是要事先计算这么多是字符串并有效的组织存储.查询还是相当麻烦,相当慢的. 因为MD5的位

Java生成含字母和数字的6位随机字符串_java

本文实例为大家分享了Java生成6位随机字符串的实现代码,具体内容如下 package com.amos.tools; import java.util.ArrayList; import java.util.List; import java.util.Random; public class InvertCodeGenerator { public static void main(String[] args) { // TODO Auto-generated method stub Lis

nginx-使用 ngx_secure_link 模块,后端怎么用java生成MD5值

问题描述 使用 ngx_secure_link 模块,后端怎么用java生成MD5值 我的目的是要实现文件链接防盗链,后端用java,怎么生成MD5值? 解决方案 利用Java自带的MD5加密

java编程下字符串的16位,32位md5加密实现方法_java

如下所示: package cn.sunzn.md5; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Str2MD5 { public static void main(String[] args) { MD5("sunzn"); } private static String MD5(String sourceStr) { String r

java 易懂易用的MD5加密(可直接运行)(2)_JSP编程

程序全文如下:  复制代码 代码如下: package com.neusoft.test.util.crypt; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.security.MessageDigest; import java.text.SimpleDateF

java生成随机密码(随机长度,指定长度)方法总结

Java生成随机长度密码.  代码如下 复制代码 /** * 生成随机密码 * * @param pwd_len * 生成的密码的总长度 * @return 密码的字符串 */ public static String genRandomNum(int pwd_len) { // 35是因为数组是从0开始的,26个字母+10个数字 final int maxNum = 36; int i; // 生成的随机数 int count = 0; // 生成的密码的长度 char[] str = { '