package com.nd.util;

import java.security.MessageDigest;

public class MD5Utils {

	//十六进制下数字到字符的映射数组  
    private final static String[] hexDigits = {"0", "1", "2", "3", "4",  
        "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};  
      
    /** * 把inputString加密     */  
    public static String generatePassword(String inputString){  
        return encodeByMD5(inputString);  
    }  
      
      /** 
       * 验证输入的密码是否正确 
     * @param password    加密后的密码 
     * @param inputString    输入的字符串 
     * @return    验证结果,TRUE:正确 FALSE:错误 
     */  
    public static boolean validatePassword(String password, String inputString){  
        if(password.equals(encodeByMD5(inputString))){  
            return true;  
        } else{  
            return false;  
        }  
    }  
    /**  对字符串进行MD5加密     */  
    private static String encodeByMD5(String originString){  
        if (originString != null){  
            try{  
                //创建具有指定算法名称的信息摘要  
                MessageDigest md = MessageDigest.getInstance("MD5");  
                //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算  
                byte[] results = md.digest(originString.getBytes());  
                //将得到的字节数组变成字符串返回  
                String resultString = byteArrayToHexString(results);  
                return resultString.toUpperCase();  
            } catch(Exception ex){  
                ex.printStackTrace();  
            }  
        }  
        return null;  
    }  
      
    /**  
     * 转换字节数组为十六进制字符串 
     * @param     字节数组 
     * @return    十六进制字符串 
     */  
    private static String byteArrayToHexString(byte[] b){  
        StringBuffer resultSb = new StringBuffer();  
        for (int i = 0; i < b.length; i++){  
            resultSb.append(byteToHexString(b[i]));  
        }  
        return resultSb.toString();  
    }  
      
    /** 将一个字节转化成十六进制形式的字符串     */  
    private static String byteToHexString(byte b){  
        int n = b;  
        if (n < 0)  
            n = 256 + n;  
        int d1 = n / 16;  
        int d2 = n % 16;  
        return hexDigits[d1] + hexDigits[d2];  
    }  
    public static void main(String args[]){
    	System.out.println(MD5Utils.encodeByMD5("123456"));
    }
}
最近下载更多
xp95323  LV14 2023年10月30日
是夜在熬我.  LV6 2022年11月30日
1641426181  LV4 2022年11月9日
testuser1234567  LV24 2022年7月21日
2716804680  LV9 2022年7月16日
zhaoyangwfd  LV17 2022年6月16日
ming_123_9715  LV23 2022年6月8日
wsgwly  LV5 2022年6月6日
远程调试_成品系统  LV15 2022年5月30日
双方各何必呢  LV13 2022年5月14日
最近浏览更多
wz  LV3 4月24日
WBelong  LV7 2023年12月27日
穿山甲1001  LV4 2023年12月16日
Henew168  LV2 2023年11月19日
森sdfgf  LV8 2023年10月21日
2036495585  LV9 2023年9月25日
wbx666  LV1 2023年9月25日
15575564465  LV1 2023年9月14日
527301883  LV1 2023年9月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友