java实现MD5加密的方法小结

 更新时间:2017年10月14日 12:13:22   作者:一笑而过  
这篇文章主要介绍了java实现MD5加密的方法,结合具体实例形式总结分析了java实现md5加密的常用操作技巧与使用方法,需要的朋友可以参考下

本文实例讲述了java实现MD5加密的方法。分享给大家供大家参考,具体如下:

private String getMD5Str(String str) {
    MessageDigest messageDigest = null;
    try {
      messageDigest = MessageDigest.getInstance("MD5");
      messageDigest.reset();
      messageDigest.update(str.getBytes("UTF-8"));
    } catch (NoSuchAlgorithmException e) {
      System.out.println("NoSuchAlgorithmException caught!");
      System.exit(-1);
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
    byte[] byteArray = messageDigest.digest();
    StringBuffer md5StrBuff = new StringBuffer();
    for (int i = 0; i < byteArray.length; i++) {
      if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
        md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
      else
        md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
    }
    return md5StrBuff.toString();
}

方法二

import java.security.MessageDigest;
public class Test_MD5{
  public final static String MD5(String s) {
    char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
    try {
      byte[] strTemp = s.getBytes();
      //使用MD5创建MessageDigest对象
      MessageDigest mdTemp = MessageDigest.getInstance("MD5");
      mdTemp.update(strTemp);
      byte[] md = mdTemp.digest();
      int j = md.length;
      char str[] = new char[j * 2];
      int k = 0;
      for (int i = 0; i < j; i++) {
        byte b = md[i];
        //System.out.println((int)b);
        //将没个数(int)b进行双字节加密
        str[k++] = hexDigits[b >> 4 & 0xf];
        str[k++] = hexDigits[b & 0xf];
      }
      return new String(str);
    } catch (Exception e) {
      return null;
    }
  }
  //测试
  public static void main(String[] args) {
    System.out.println("caidao的MD5加密后:/n"+Test_MD5.MD5("caidao"));
    System.out.println("http://www.baidu.com/的MD5加密后:/n"+Test_MD5.MD5("http://www.baidu.com/"));
  }
}

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数学运算技巧总结》、《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • java中Webclient对象如何解析400状态码详解

    java中Webclient对象如何解析400状态码详解

    这篇文章主要介绍了java中Webclient对象如何解析400状态码的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用java具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-12-12
  • Spring的跨域的几个方案

    Spring的跨域的几个方案

    这篇文章主要介绍了Spring的跨域的几个方案,CrossOrigin、addCorsMappings、CorsFIlter等方案,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-02-02
  • Springboot搭建JVM监控(Springboot + Prometheus + Grafana)

    Springboot搭建JVM监控(Springboot + Prometheus +&n

    在应用开发时,监控报警必不可少,本文主要介绍了Springboot搭建JVM监控(Springboot + Prometheus + Grafana),具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 详解Java的闭包

    详解Java的闭包

    这篇文章主要介绍了详解Java的闭包,作者从Lambda和默认方法等重要特性深入讲解,极力推荐!需要的朋友可以参考下
    2015-07-07
  • Java中五种不同方法的创建对象

    Java中五种不同方法的创建对象

    本文为大家详细介绍了在Java中5种不同创建对象的方法和实例代码,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • JAVA操作MongoDB数据库实例教程

    JAVA操作MongoDB数据库实例教程

    MongoDB是一个文档型数据库,是NOSQL家族中最重要的成员之一,下面这篇文章主要给大家介绍了关于JAVA操作MongoDB数据库的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 分布式调度器之Spring Task 的使用详解

    分布式调度器之Spring Task 的使用详解

    SpringTask是Spring框架中用于任务调度的组件,通过简单的注解就能实现定时任务的创建和调度,可以通过配置线程池来实现,本文给大家介绍分布式调度器之Spring Task 的使用,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • Java的Spring框架中DAO数据访问对象的使用示例

    Java的Spring框架中DAO数据访问对象的使用示例

    这篇文章主要介绍了Java的Spring框架中DAO数据访问对象的使用示例,分为在Spring中DOA与JDBC以及与Hibernate的配合使用两种情况来进行演示,需要的朋友可以参考下
    2016-03-03
  • java异步执行代码处理方法(先返回结果,后执行代码)

    java异步执行代码处理方法(先返回结果,后执行代码)

    这篇文章主要给大家介绍了关于java异步执行代码处理方法的相关资料,先返回结果,后执行代码,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • SpringBoot Jpa分页查询配置方式解析

    SpringBoot Jpa分页查询配置方式解析

    这篇文章主要介绍了SpringBoot Jpa分页查询配置方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论