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

 更新时间:2015年06月30日 10:30:21   投稿:junjie  
这篇文章主要介绍了Java生成MD5加密字符串代码实例,本文对MD5的作用作了一些介绍,然后给出了Java下生成MD5加密字符串的代码示例,需要的朋友可以参考下

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

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

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

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

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

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

       MD5密码破解网站 :可以百度搜索“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在线加密工具:

http://tools.jb51.net/password/CreateMD5Password

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:

http://tools.jb51.net/password/hash_md5_sha

相关文章

  • Java 空和null的区别

    Java 空和null的区别

    本文主要介绍了Java 空和null的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • java1.8安装及环境变量配置教程

    java1.8安装及环境变量配置教程

    这篇文章主要介绍了java1.8安装及环境变量配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 深入理解Struts2国际化信息机制

    深入理解Struts2国际化信息机制

    本篇文章主要介绍了深入理解Struts2国际化信息机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 浅谈Spring Boot日志框架实践

    浅谈Spring Boot日志框架实践

    这篇文章主要介绍了浅谈Spring Boot日志框架实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 详述IntelliJ IDEA插件的安装及使用方法(图解)

    详述IntelliJ IDEA插件的安装及使用方法(图解)

    本篇文章主要介绍了详述 IntelliJ IDEA 插件的安装及使用方法(图解),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Spring EnableAsync注解异步执行源码解析

    Spring EnableAsync注解异步执行源码解析

    这篇文章主要为大家介绍了Spring EnableAsync注解源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 基于jvm-sandbox的imock开发指南详解

    基于jvm-sandbox的imock开发指南详解

    这篇文章主要为大家介绍了基于jvm-sandbox的imock开发指南详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Java数据结构之链表实现(单向、双向链表及链表反转)

    Java数据结构之链表实现(单向、双向链表及链表反转)

    这篇文章主要给大家介绍了关于Java数据结构之链表实现的相关资料,其中包括单向链表、双向链表及链表反转的实现代码,需要的朋友可以参考下
    2021-06-06
  • 新手初学Java基础

    新手初学Java基础

    这篇文章主要介绍了java基础之方法详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-07-07
  • 如何用java给一个文件夹打成压缩包(附代码)

    如何用java给一个文件夹打成压缩包(附代码)

    项目中需要将文件夹打包成压缩包下载,所以下面这篇文章主要给大家介绍了关于如何用java给一个文件夹打成压缩包的相关资料,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-10-10

最新评论