java实现md5加密示例

 更新时间:2014年05月06日 09:07:24   投稿:zxhpj  
这篇文章主要介绍了java实现md5加密示例,需要的朋友可以参考下

复制代码 代码如下:

/**
 * 实现MD5加密
 *
 */
public class MD5 {
 
 /**
  * 获取加密后的字符串
  * @param input
  * @return
  */
 public static String stringMD5(String pw) {
  try { 
    
        // 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”) 
        MessageDigest messageDigest =MessageDigest.getInstance("MD5"); 
        // 输入的字符串转换成字节数组 
        byte[] inputByteArray = pw.getBytes(); 
        // inputByteArray是输入字符串转换得到的字节数组 
        messageDigest.update(inputByteArray); 
        // 转换并返回结果,也是字节数组,包含16个元素 
        byte[] resultByteArray = messageDigest.digest(); 
        // 字符数组转换成字符串返回 
        return byteArrayToHex(resultByteArray); 
     } catch (NoSuchAlgorithmException e) { 
        return null; 
     } 
 }
 
    public static String byteArrayToHex(byte[] byteArray) { 
       
        // 首先初始化一个字符数组,用来存放每个16进制字符 
        char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' }; 
        // new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方)) 
        char[] resultCharArray =new char[byteArray.length * 2]; 
        // 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去 
        int index = 0;
        for (byte b : byteArray) { 
           resultCharArray[index++] = hexDigits[b>>> 4 & 0xf]; 
           resultCharArray[index++] = hexDigits[b& 0xf]; 
        }
        // 字符数组组合成字符串返回 
        return new String(resultCharArray); 
    }
}

PS:关于加密技术,本站还提供了如下加密工具供大家参考使用:

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

Escape加密/解密工具:http://tools.jb51.net/password/escapepwd

在线SHA1加密工具:http://tools.jb51.net/password/sha1encode

短链(短网址)在线生成工具:http://tools.jb51.net/password/dwzcreate

短链(短网址)在线还原工具:http://tools.jb51.net/password/unshorturl

高强度密码生成器:http://tools.jb51.net/password/CreateStrongPassword

相关文章

  • GC调优实战之高分配速率High Allocation Rate

    GC调优实战之高分配速率High Allocation Rate

    这篇文章主要为大家介绍了GC调优之高分配速率High Allocation Rate的实战示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-01-01
  • 基于Java实现简单的邮件群发功能

    基于Java实现简单的邮件群发功能

    这篇文章主要为大家详细介绍了如何利用Java语言编写一个简单的工具类,可以实现邮件群发功能。文中的示例代码讲解详细,需要的可以参考一下
    2022-05-05
  • springboot整合JSR303校验功能实现代码

    springboot整合JSR303校验功能实现代码

    这篇文章主要介绍了springboot整合JSR303校验功能实现,JSR303校验方法有统一校验的需求,统一校验实现以及分组校验,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • 详谈Java中BigDecimal的一个除法异常

    详谈Java中BigDecimal的一个除法异常

    下面小编就为大家分享一篇详谈Java中BigDecimal的一个除法异常,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • JavaSE图像验证码简单识别程序详解

    JavaSE图像验证码简单识别程序详解

    这篇文章主要为大家详细介绍了JavaSE图像验证码简单识别程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Spring Security 实现“记住我”功能及原理解析

    Spring Security 实现“记住我”功能及原理解析

    这篇文章主要介绍了Spring Security 实现“记住我”功能及原理解析,需要的朋友可以参考下
    2020-05-05
  • 一文带你初识java中的String类

    一文带你初识java中的String类

    String代表字符串,Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现,这篇文章主要给大家介绍了关于java中String类的相关资料,需要的朋友可以参考下
    2021-10-10
  • 详解JavaEE中Apollo安装使用小结

    详解JavaEE中Apollo安装使用小结

    这篇文章主要介绍了详解JavaEE中Apollo安装与使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • JavaWeb中Servlet的深入理解

    JavaWeb中Servlet的深入理解

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层
    2021-10-10
  • MyBatis使用自定义TypeHandler转换类型的实现方法

    MyBatis使用自定义TypeHandler转换类型的实现方法

    这篇文章主要介绍了MyBatis使用自定义TypeHandler转换类型的实现方法,本文介绍使用TypeHandler 实现日期类型的转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10

最新评论