zoukankan      html  css  js  c++  java
  • MD5_Util工具类代码

    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.  
      }
  • 相关阅读:
    软件逆向——软件壳特点总结
    OD调试4----去除nag窗口的几种方法
    OD调试3--获取使用执照
    OD调试2----破解序列号验证程序
    OD调试初步概念——修改窗口标题
    Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 11 Pointer Analysis Context Sensitivity
    Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 08 Pointer Analysis && 09 Pointer Analysis Foundations (I)
    Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 07 Interprocedural Analysis
    Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 05 Data Flow Analysis
    Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 03 Data Flow Analysis
  • 原文地址:https://www.cnblogs.com/yuyu666/p/10526142.html
Copyright © 2011-2022 走看看