在Java中生成MD5哈希 - 输出16个字符

Pir*_*aba 1 java

我已经创建了MD5 hash.Its现在工作正常.我希望输出16个字符.当前代码返回32个字符.

这是我的代码:

    try {
            String text = "Hello World";
            MessageDigest msg = MessageDigest.getInstance("MD5");
            msg.update(text.getBytes(), 0, text.length());
            String digest1 = new BigInteger(1, msg.digest()).toString(16);
            System.out.println("MD5: " + digest1.length());
            System.out.println("MD5: " + digest1);
        } catch (NoSuchAlgorithmException ex) {
            Logger.getLogger(AndroidActivationView.class.getName()).log(Level.SEVERE, null, ex);
        }
Run Code Online (Sandbox Code Playgroud)

我想改变它的地方.

如何获得16个字符的输出.

提前致谢;

eri*_*son 7

将字符串剪成长度: digest1 = digest1.substring(0, 16);

MD5输出16个字节.如果用十六进制编码,则为32个字符.如果你用base-64编码它是24个字符.Base-85会将其挤压成20个字符.没有众所周知的编码,即每个字节一个字符.