MD5加密算法的java实现详解编程语言

import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 
/* 
 * MD5 算法 
*/ 
public class MD5 { 
      
    // 全局数组 
    private final static String[] strDigits = { "0", "1", "2", "3", "4", "5", 
            "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; 
  
    public MD5() { 
    } 
  
    // 返回形式为数字跟字符串 
    private static String byteToArrayString(byte bByte) { 
        int iRet = bByte; 
        // System.out.println("iRet="+iRet); 
        if (iRet < 0) { 
            iRet += 256; 
        } 
        int iD1 = iRet / 16; 
        int iD2 = iRet % 16; 
        return strDigits[iD1] + strDigits[iD2]; 
    } 
  
    // 返回形式只为数字 
    private static String byteToNum(byte bByte) { 
        int iRet = bByte; 
        System.out.println("iRet1=" + iRet); 
        if (iRet < 0) { 
            iRet += 256; 
        } 
        return String.valueOf(iRet); 
    } 
  
    // 转换字节数组为16进制字串 
    private static String byteToString(byte[] bByte) { 
        StringBuffer sBuffer = new StringBuffer(); 
        for (int i = 0; i < bByte.length; i++) { 
            sBuffer.append(byteToArrayString(bByte[i])); 
        } 
        return sBuffer.toString(); 
    } 
  
    public static String GetMD5Code(String strObj) { 
        String resultString = null; 
        try { 
            resultString = new String(strObj); 
            MessageDigest md = MessageDigest.getInstance("MD5"); 
            // md.digest() 该函数返回值为存放哈希值结果的byte数组 
            resultString = byteToString(md.digest(strObj.getBytes())); 
        } catch (NoSuchAlgorithmException ex) { 
            ex.printStackTrace(); 
        } 
        return resultString; 
    } 
  
    public static void main(String[] args) { 
        MD5 getMD5 = new MD5(); 
        System.out.println(getMD5.GetMD5Code("000000")); 
    } 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10716.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论