我已经创建了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个字符的输出.
提前致谢;
将字符串剪成长度: digest1 = digest1.substring(0, 16);
MD5输出16个字节.如果用十六进制编码,则为32个字符.如果你用base-64编码它是24个字符.Base-85会将其挤压成20个字符.没有众所周知的编码,即每个字节一个字符.