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

相关文章

  • Kotlin + Retrofit + RxJava简单封装使用详解

    Kotlin + Retrofit + RxJava简单封装使用详解

    这篇文章主要介绍了Kotlin + Retrofit + RxJava简单封装使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Spring中使用@Value注解注入属性文件中的值详解

    Spring中使用@Value注解注入属性文件中的值详解

    这篇文章主要介绍了Spring中使用@Value注解注入属性文件中的值详解,通过Spring的@Value注解可以将xml中关联的属性文件中的值注入变量中,这样就不需要通过创建Properties然后根据属性文件读取属性值了,需要的朋友可以参考下
    2023-12-12
  • redisson特性及优雅实现示例

    redisson特性及优雅实现示例

    这篇文章主要为大家介绍了redisson特性及优雅实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java使用Instant时输出的时间比预期少了八个小时

    Java使用Instant时输出的时间比预期少了八个小时

    在Java中,LocalDateTime表示没有时区信息的日期和时间,而Instant表示基于UTC的时间点,本文主要介绍了Java使用Instant时输出的时间比预期少了八个小时的问题解决,感兴趣的可以了解一下
    2024-09-09
  • Java实现数据库图片上传与存储功能

    Java实现数据库图片上传与存储功能

    在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助
    2025-03-03
  • SpringBoot Admin健康检查功能的实现

    SpringBoot Admin健康检查功能的实现

    admin主要就是告诉运维人员,服务出现异常,然后进行通知(微信、邮件、短信、钉钉等)可以非常快速通知到运维人员,相当报警功能,接下来通过本文给大家介绍SpringBoot Admin健康检查的相关知识,一起看看吧
    2021-06-06
  • java中使用Files.readLines()处理文本中行数据方式

    java中使用Files.readLines()处理文本中行数据方式

    这篇文章主要介绍了java中使用Files.readLines()处理文本中行数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 基于JDK8-lambda表达式四种forEach性能对比

    基于JDK8-lambda表达式四种forEach性能对比

    这篇文章主要介绍了基于JDK8-lambda表达式四种forEach性能对比,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • springboot整合druid及多数据源配置的demo

    springboot整合druid及多数据源配置的demo

    这篇文章主要介绍了springboot整合druid及多数据源配置的demo,本篇主要分两部分 ①springboot整合druid的代码配置,以及druid的监控页面演示;②对实际场景中多数据源的配置使用进行讲解,需要的朋友可以参考下
    2024-01-01
  • Spring注解之@Conditional使用解析

    Spring注解之@Conditional使用解析

    这篇文章主要介绍了Spring注解之@Conditional使用解析,@Conditional注解可以说是SpringBoot的条件注解,表示组件只有在所有指定条件都匹配时才有资格注册,条件是可以在 bean 定义注册之前​​以编程方式确定的任何状态,需要的朋友可以参考下
    2024-01-01

最新评论