博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MD5_Util工具类代码
阅读量:4958 次
发布时间:2019-06-12

本文共 3467 字,大约阅读时间需要 11 分钟。

package com.yby.mall.utils; import java.math.BigInteger;import java.security.MessageDigest; public class MD5Util{            /**     * 对字符串md5加密(小写+字母)     *     * @param str 传入要加密的字符串     * @return  MD5加密后的字符串     */    public static String getMD5(String str) {        try {            // 生成一个MD5加密计算摘要            MessageDigest md = MessageDigest.getInstance("MD5");            // 计算md5函数            md.update(str.getBytes());            // digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符            // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值            return new BigInteger(1, md.digest()).toString(16);        } catch (Exception e) {           e.printStackTrace();           return null;        }    }            /**     * 对字符串md5加密(大写+数字)     *     * @param str 传入要加密的字符串     * @return  MD5加密后的字符串     */        public 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[] btInput = s.getBytes();            // 获得MD5摘要算法的 MessageDigest 对象            MessageDigest mdInst = MessageDigest.getInstance("MD5");            // 使用指定的字节更新摘要            mdInst.update(btInput);            // 获得密文            byte[] md = mdInst.digest();            // 把密文转换成十六进制的字符串形式            int j = md.length;            char str[] = new char[j * 2];            int k = 0;            for (int i = 0; i < j; i++) {                byte byte0 = md[i];                str[k++] = hexDigits[byte0 >>> 4 & 0xf];                str[k++] = hexDigits[byte0 & 0xf];            }            return new String(str);        } catch (Exception e) {            e.printStackTrace();            return null;        }    }      public static void main(String[] args) {         String md5 = MD5Util.MD5("password");         System.out.println(md5);         String md52 = MD5Util.getMD5("password22");         System.out.println(md52);    } }

  

 

  1. package com.yby.mall.utils;
  2.  
     
  3.  
    import java.math.BigInteger;
  4.  
    import java.security.MessageDigest;
  5.  
     
  6.  
    public
    class MD5Util{
  7.  
     
  8.  
     
  9.  
    /**
  10.  
    * 对字符串md5加密(小写+字母)
  11.  
    *
  12.  
    * @param str 传入要加密的字符串
  13.  
    * @return MD5加密后的字符串
  14.  
    */
  15.  
    public static String getMD5(String str) {
  16.  
    try {
  17.  
    // 生成一个MD5加密计算摘要
  18.  
    MessageDigest md = MessageDigest.getInstance(
    "MD5");
  19.  
    // 计算md5函数
  20.  
    md.update(str.getBytes());
  21.  
    // digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
  22.  
    // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值
  23.  
    return
    new BigInteger(
    1, md.digest()).toString(
    16);
  24.  
    }
    catch (Exception e) {
  25.  
    e.printStackTrace();
  26.  
    return
    null;
  27.  
    }
  28.  
    }
  29.  
     
  30.  
     
  31.  
    /**
  32.  
    * 对字符串md5加密(大写+数字)
  33.  
    *
  34.  
    * @param str 传入要加密的字符串
  35.  
    * @return MD5加密后的字符串
  36.  
    */
  37.  
     
  38.  
    public static String MD5(String s) {
  39.  
    char hexDigits[]={
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    'A',
    'B',
    'C',
    'D',
    'E',
    'F'};
  40.  
     
  41.  
    try {
  42.  
    byte[] btInput = s.getBytes();
  43.  
    // 获得MD5摘要算法的 MessageDigest 对象
  44.  
    MessageDigest mdInst = MessageDigest.getInstance(
    "MD5");
  45.  
    // 使用指定的字节更新摘要
  46.  
    mdInst.update(btInput);
  47.  
    // 获得密文
  48.  
    byte[] md = mdInst.digest();
  49.  
    // 把密文转换成十六进制的字符串形式
  50.  
    int j = md.length;
  51.  
    char str[] =
    new
    char[j *
    2];
  52.  
    int k =
    0;
  53.  
    for (
    int i =
    0; i < j; i++) {
  54.  
    byte byte0 = md[i];
  55.  
    str[k++] = hexDigits[byte0 >>>
    4 &
    0xf];
  56.  
    str[k++] = hexDigits[byte0 &
    0xf];
  57.  
    }
  58.  
    return
    new String(str);
  59.  
    }
    catch (Exception e) {
  60.  
    e.printStackTrace();
  61.  
    return
    null;
  62.  
    }
  63.  
    }
  64.  
     
  65.  
    public static void main(String[] args) {
  66.  
    String md5 = MD5Util.MD5(
    "password");
  67.  
    System.out.println(md5);
  68.  
    String md52 = MD5Util.getMD5(
    "password22");
  69.  
    System.out.println(md52);
  70.  
    }
  71.  
     
  72.  
    }

转载于:https://www.cnblogs.com/yuyu666/p/10526142.html

你可能感兴趣的文章
反射技术
查看>>
vector 的resize 和 reserve
查看>>
Logback LogBack
查看>>
如何在C#中获得input文本框中的值
查看>>
Unicode字符列表(超完整)
查看>>
linux消息队列编程实例
查看>>
webapi中使用Route标签
查看>>
LeetCode 43 字符串相乘
查看>>
[学习笔记] extends implements 的区别与联系 [转载]
查看>>
PHP的运行机制与原理(底层) [转]
查看>>
网页压力测试工具之Loadrunner
查看>>
MSSQL 视图/事务(TRAN[SACTION])/存储过程(PROC[EDURE])/触发器(TRIGGER )
查看>>
python访问mysql和redis
查看>>
整数中1出现的次数(从1到n整数中1出现的次数)(python)
查看>>
javafx实现一个很有意思的动画
查看>>
javafx实现自定义html编辑器
查看>>
Python自学之乐-继承的新式类与经典类
查看>>
解决新浪微博未安装客户端分享不能带链接问题
查看>>
ionic安装开发环境
查看>>
Java 生成 UUID
查看>>