JavaによるMD 5加算

1616 ワード

private final static String[] hexDigits = {"0", "1", "2", "3", "4",      
        "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};

private static String encodeByMD5(String originString){      
        if (originString != null){      
            try{ 
                //     MD5   (    SHA1    ”SHA1”)     
                MessageDigest md = MessageDigest.getInstance("MD5");      
                //        ,      ,  16       
                byte[] results = md.digest(originString.getBytes("UTF-8"));      
                //              (16    )    
                String resultString = byteArrayToHexString(results);      
                String pass =  resultString.toUpperCase();      
                return pass;    
            } catch(Exception ex){      
                ex.printStackTrace();      
            }      
        }      
        return null;      
} 

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];      
}