java 实现MD5加密算法的简单实例

 更新时间:2017年09月03日 11:06:35   投稿:lqh  
这篇文章主要介绍了java 实现MD5加密算法的简单实例的相关资料,这里提供实例帮助大家应用这样的加密算法,需要的朋友可以参考下

java 实现MD5加密算法的简单实例

实现代码:

import java.security.NoSuchAlgorithmException;  
 
public class MD5HashUtil  
{  
private MessageDigest md = null;  
private static MD5HashUtil md5 = null;  
private static final char[] hexChars ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};  
 
  /** 
  * Constructor is private so you must use the getInstance method 
  */  
  private MD5HashUtil() throws NoSuchAlgorithmException  
  {  
   md = MessageDigest.getInstance("MD5");  
  }  
  /** 
  * This returns the singleton instance 
  */  
 public static MD5HashUtil getInstance()throws NoSuchAlgorithmException  
  {  
    if (md5 == null)  
    {  
     md5 = new MD5HashUtil();  
   }  
   return (md5);  
  }  
 public static String hashCode(String dataToHash) throws NoSuchAlgorithmException{  
 return getInstance().hashData(dataToHash.getBytes());  
 }  
 public static String hashCode(byte[] dataToHash) throws NoSuchAlgorithmException{  
 return getInstance().hashData(dataToHash);  
 }  
public String hashData(byte[] dataToHash) {  
   return hexStringFromBytes((calculateHash(dataToHash))).toLowerCase();  
}  
private byte[] calculateHash(byte[] dataToHash)  
{  
   md.update(dataToHash, 0, dataToHash.length);  
   return (md.digest());  
 }  
public String hexStringFromBytes(byte[] b)  
{  
  String hex = "";  
  int msb;  
  int lsb = 0;  
  int i;  
  // MSB maps to idx 0  
  for (i = 0; i < b.length; i++)  
  {  
   msb = ((int)b[i] & 0x000000FF) / 16;  
   lsb = ((int)b[i] & 0x000000FF) % 16;  
    hex = hex + hexChars[msb] + hexChars[lsb];  
   }  
   return(hex);  
  }  
 
public static void main(String args[]) throws NoSuchAlgorithmException  
{  
String string = "my name is zhangli";  
System.out.println(string);  
System.out.println(hashCode(string));  
}  
}  

 如上代码为java语言实现md5加密算法,输出为加密后的密文!

通常将加密后的密文保存在数据库中,如果需要比较只比较他们的用md5加密过后的密文。

同时,md5加密算法是不可逆的,破解的难度很高。

以上就是java MD5加密算法的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 关于IDEA关联数据库的问题

    关于IDEA关联数据库的问题

    这篇文章主要介绍了IDEA关联数据库的相关知识,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • spring通过导入jar包和配置xml文件启动的步骤详解

    spring通过导入jar包和配置xml文件启动的步骤详解

    这篇文章主要介绍了spring通过导入jar包和配置xml文件启动,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java数据类型实现自动与强制转换的示例代码

    Java数据类型实现自动与强制转换的示例代码

    Java数据类型之间的转换有自动转换和强制类型转换,这篇文章主要给大家介绍Java数据类型如何实现自动转换与强制转换,需要的朋友可以参考下
    2023-05-05
  • Linux系统卸载重装JDK的完整流程

    Linux系统卸载重装JDK的完整流程

    Linux系统有时候会默认使用OpenJDK版本,需要卸载后重新安装自己需要的JDK版本,下面这篇文章主要给大家介绍了关于Linux系统卸载重装JDK的完整流程,需要的朋友可以参考下
    2024-02-02
  • Java实现Treap树的示例代码

    Java实现Treap树的示例代码

    本文主要介绍了Java实现Treap树的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • java基础之包装类的介绍及使用

    java基础之包装类的介绍及使用

    今天带大家复习Java基础知识,文中对Java包装类作了非常详细的介绍及总结,对正在学习java基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • win10操作系统下重启电脑java环境变量失效

    win10操作系统下重启电脑java环境变量失效

    这篇文章主要介绍了win10操作系统下重启电脑java环境变量失效,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • java代码规范review异常事故记录

    java代码规范review异常事故记录

    这篇文章主要为大家介绍了java代码规范关于异常review代码发生异常的事故记录,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • java启动命令中-D和--的区别解析

    java启动命令中-D和--的区别解析

    在 SpringBoot 项目中,启动时,通过 -D 或 -- 添加参数,都可以直接覆盖 yml 或 properties 配置文件中的同名配置,如果不存在则相当于添加了一个配置,这篇文章主要介绍了java启动命令中-D和--的区别,需要的朋友可以参考下
    2024-08-08
  • Spring中的spring.factories文件用法(Spring如何加载第三方Bean)

    Spring中的spring.factories文件用法(Spring如何加载第三方Bean)

    这篇文章主要介绍了Spring中的spring.factories文件用法(Spring如何加载第三方Bean),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论