但行好事  莫问前程

Java 生成16/32位 MD5密钥串

注意!网上广为流传的MD5计算的版本,与标准MD5计算结果不同(原因可能是编码方式的不同)。请注意甄别。
以下代码是经过测试的正确版本。

public class MD5 {
    private static final char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };  

    private static String toHexString(byte[] b) {  
        StringBuilder sb = new StringBuilder(b.length * 2);  
        for (int i = 0; i < b.length; i++) {  
            sb.append(HEX_DIGITS[(b[i] & 0xf0) >>> 4]);  
            sb.append(HEX_DIGITS[b[i] & 0x0f]);  
        }  
        return sb.toString();  
    }  

    public static String Bit32(String SourceString) throws Exception {  
        MessageDigest digest = java.security.MessageDigest.getInstance("MD5");  
        digest.update(SourceString.getBytes());  
        byte messageDigest[] = digest.digest();  
        return toHexString(messageDigest);  
    }  

    public static String Bit16(String SourceString) throws Exception {  
        return Bit32(SourceString).substring(8, 24);  
    } 

    public static void main(String[] args) {
        try {
            System.out.println(Bit32("longjiazuo"));;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
打赏
欢迎关注人生设计师的微信公众账号
公众号ID:longjiazuoA

未经允许不得转载:人生设计师 » Java 生成16/32位 MD5密钥串

分享到:更多 ()

人生设计师-接受不同的声音

联系我关于我