zoukankan      html  css  js  c++  java
  • JAVA MD5加密

    1. /** 
    2.  * Java密码加密 
    3.  * Java代码 
    4.  */  
    5. package com.baobaotao.common;  
    6.   
    7. import java.security.MessageDigest;  
    8.   
    9. /** 
    10.  * 对密码进行加密和验证的类 
    11.  */  
    12. public class CipherUtil {  
    13.   
    14.     // 十六进制下数字到字符的映射数组  
    15.     private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",  
    16.             "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };  
    17.   
    18.     /** * 把inputString加密 */  
    19.     public static String generatePassword(String inputString) {  
    20.         return encodeByMD5(inputString);  
    21.     }  
    22.   
    23.     /** 对字符串进行MD5加密 */  
    24.     private static String encodeByMD5(String originString) {  
    25.         if (originString != null) {  
    26.             try {  
    27.                 // 创建具有指定算法名称的信息摘要  
    28.                 MessageDigest md = MessageDigest.getInstance("MD5");  
    29.                 // 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算  
    30.                 byte[] results = md.digest(originString.getBytes());  
    31.                 // 将得到的字节数组变成字符串返回  
    32.                 String resultString = byteArrayToHexString(results);  
    33.                 return resultString.toUpperCase();  
    34.             } catch (Exception ex) {  
    35.                 ex.printStackTrace();  
    36.             }  
    37.         }  
    38.         return null;  
    39.     }  
    40.   
    41.     /** 
    42.      * 转换字节数组为十六进制字符串 
    43.      *  
    44.      * @param 字节数组 
    45.      * @return 十六进制字符串 
    46.      */  
    47.     private static String byteArrayToHexString(byte[] b) {  
    48.         StringBuffer resultSb = new StringBuffer();  
    49.         for (int i = 0; i < b.length; i++) {  
    50.             resultSb.append(byteToHexString(b[i]));  
    51.         }  
    52.         return resultSb.toString();  
    53.     }  
    54.   
    55.     /** 将一个字节转化成十六进制形式的字符串 */  
    56.     private static String byteToHexString(byte b) {  
    57.         int n = b;  
    58.         if (n < 0)  
    59.             n = 256 + n;  
    60.         int d1 = n / 16;  
    61.         int d2 = n % 16;  
    62.         return hexDigits[d1] + hexDigits[d2];  
    63.     }  
    64.       /** 测试 */  
    65.     public static void main(String[] args){  
    66.         String pwd = CipherUtil.generatePassword("123456");  
    67.         System.out.println(pwd);  
    68.     }  
    69. }  
  • 相关阅读:
    POJ 2376 Cleaning Shifts 贪心
    POJ 2376 Cleaning Shifts 贪心
    魔咒词典 HDU
    2019第十届蓝桥杯C/C++ A组省赛 —— 第三题: 最大降雨量
    2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
    2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
    2019第十届蓝桥杯C/C++ A组省赛 —— 第一题:平方和
    2019第十届蓝桥杯C/C++ A组省赛 —— 第一题:平方和
    2015年第六届蓝桥杯C/C++ A组国赛 —— 第五题:切开字符串
    2015年第六届蓝桥杯C/C++ A组国赛 —— 第五题:切开字符串
  • 原文地址:https://www.cnblogs.com/Alex80/p/14480679.html
Copyright © 2011-2022 走看看