gpt4 book ai didi

java - 将字符串转换为 md5 给出添加位数

转载 作者:行者123 更新时间:2023-12-02 06:25:56 25 4
gpt4 key购买 nike

我正在尝试使用以下代码将字符串转换为其 MD5 表示形式:

public static void main(String[] args) throws NoSuchAlgorithmException {
String s = "oshai";
MessageDigest m = MessageDigest.getInstance("MD5");
m.update(s.getBytes(),0,s.length());
String md5 = new BigInteger(1,m.digest()).toString(16);
System.out.println(md5.length());
}

返回的字符串增加了位数(31,因此可以是十六进制数)。我做错了什么?

最佳答案

您不想使用 BigInteger。尝试更传统的 toHexString 方法..

public static void main(String[] args) throws NoSuchAlgorithmException {
String s = "oshai";
MessageDigest m = MessageDigest.getInstance("MD5");
m.update(s.getBytes(),0,s.length());
String string = toHexString(m.digest());
System.out.println(string);
}

public static String toHexString(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for(byte b : bytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}

关于java - 将字符串转换为 md5 给出添加位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com