zoukankan      html  css  js  c++  java
  • 自写的简单MD5加密算法

     1 package com.srs.tools;
     2 
     3 import java.math.BigInteger;
     4 import java.security.MessageDigest;
     5 
     6 /*******************************************************************************
     7 *
     8 *
     9 * MD5加密
    10 */
    11 
    12 public class MD5_Encoding {
    13 
    14     /**
    15      * 对字符串md5加密(小写+数字)
    16      *
    17      * @param str 传入要加密的字符串
    18      * @return  MD5加密后的字符串
    19      */
    20     public static String lowerMD5(String str) {
    21         try {
    22             // 生成一个MD5加密计算摘要
    23             MessageDigest md = MessageDigest.getInstance("MD5");
    24             // 计算md5函数
    25             md.update(str.getBytes());
    26             // digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
    27             // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值
    28             return new BigInteger(1, md.digest()).toString(16);
    29         } catch (Exception e) {
    30            e.printStackTrace();
    31            return null;
    32         }
    33     }
    34       
    35       
    36     /**
    37      * 对字符串md5加密(大写+数字)
    38      *
    39      * @param str 传入要加密的字符串
    40      * @return  MD5加密后的字符串
    41      */
    42       
    43     public static String upperMD5(String s) {
    44         char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    45   
    46         try {
    47             byte[] btInput = s.getBytes();
    48             // 获得MD5摘要算法的 MessageDigest 对象
    49             MessageDigest mdInst = MessageDigest.getInstance("MD5");
    50             // 使用指定的字节更新摘要
    51             mdInst.update(btInput);
    52             // 获得密文
    53             byte[] md = mdInst.digest();
    54             // 把密文转换成十六进制的字符串形式
    55             int j = md.length;
    56             char str[] = new char[j * 2];
    57             int k = 0;
    58             for (int i = 0; i < j; i++) {
    59                 byte byte0 = md[i];
    60                 str[k++] = hexDigits[byte0 >>> 4 & 0xf];
    61                 str[k++] = hexDigits[byte0 & 0xf];
    62             }
    63             return new String(str);
    64         } catch (Exception e) {
    65             e.printStackTrace();
    66             return null;
    67         }
    68     }
    69 }
  • 相关阅读:
    查看yarn当前执行任务列表
    小白学开发(iOS)OC_ 字符串的获取 (2015-08-11)
    【leetcode】Search in Rotated Sorted Array (hard)
    【leetcode】Spiral Matrix II (middle)
    【leetcode】Spiral Matrix(middle)
    【leetcode】Reverse Bits(middle)
    【leetcode】Number of 1 Bits (easy)
    【leetcode】Set Matrix Zeroes(middle)
    【leetcode】Reorder List (middle)
    【leetcode】Reverse Linked List II (middle)
  • 原文地址:https://www.cnblogs.com/thelovelybugfly/p/10826924.html
Copyright © 2011-2022 走看看