zoukankan      html  css  js  c++  java
  • MD5

     1 package com.core.util;
     2 
     3 import java.security.MessageDigest;
     4 
     5 public class MD5 {
     6     
     7     //十六进制下数字到字符的映射数组
     8     private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
     9             "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
    10 
    11     /** 把inputString加密 */
    12     public static String createPassword(String inputString) {
    13         return encodeByMD5(inputString);
    14     }
    15 
    16     /**
    17      * 
    18      * Creation  Date:2008-3-14
    19      * TODO    验证输入的密码是否正确
    20      * @param password 加密后的源密码
    21      * @param inputString 输入字符串
    22      * @return boolean true为真,false为假
    23      * @Author tianw
    24      */
    25     public static boolean authenticatePassword(String password,
    26             String inputString) {
    27         if (password.equals(encodeByMD5(inputString))) {
    28             return true;
    29         } else {
    30             return false;
    31         }
    32     }
    33 
    34     
    35     /** 对字符串进行MD5加密 */
    36     private static String encodeByMD5(String originString) {
    37         if (originString != null) {
    38             try {
    39                 // 创建具有指定算法名称的信息摘要
    40                 MessageDigest md = MessageDigest.getInstance("MD5");
    41                 // 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
    42                 byte[] results = md.digest(originString.getBytes());
    43                 // 将得到的字节数组变成字符串返回
    44                 String resultString = byteArrayToHexString(results);
    45                 return resultString.toUpperCase();
    46             } catch (Exception ex) {
    47                 ex.printStackTrace();
    48             }
    49         }
    50         return null;
    51     }
    52     
    53     /**
    54      * 
    55      * Creation  Date:2008-3-14
    56      * TODO    转换字节数组为十六进制字符串
    57      * @param b  字节数组
    58      * @return String 十六进制字符串
    59      * @Author tianw
    60      */
    61     private static String byteArrayToHexString(byte[] b) {
    62         StringBuffer resultSb = new StringBuffer();
    63         for (int i = 0; i < b.length; i++) {
    64             
    65             String ss = byteToHexString(b[i]);            
    66             resultSb.append(ss);
    67         }
    68         
    69         return resultSb.toString();
    70     }
    71 
    72     
    73     /** 将一个字节转化成十六进制形式的字符串 */
    74     private static String byteToHexString(byte b) {
    75         int n = b;
    76         if (n < 0)
    77             n = 256 + n;
    78         int d1 = n / 16;
    79         int d2 = n % 16;
    80         return hexDigits[d1] + hexDigits[d2];
    81     }
    82     
    83     public static void main(String[] args) {
    84         System.out.println(MD5.createPassword("123456"));//8994E0A54CF3B38CC08F251780375F19
    85     }
    86 }
  • 相关阅读:
    3.30作业
    3.30课堂
    3.29作业
    3,29课堂
    3。26作业
    3.26课堂
    3.25作业
    3.25课堂
    55、DOM与BOM的操作及事件的简介
    54、js的数据类型及对象
  • 原文地址:https://www.cnblogs.com/sallet/p/3941423.html
Copyright © 2011-2022 走看看