我有下面这段代码的整数值:我如何获得的十六进制字符串
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] byteArray = md.digest(myString.getBytes("UTF-8"));
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
sb.append(Integer.toString((byteArray[i] & 0xff) + 0x100, 16).substring(1));
}
int n = (int) Long.parseLong(sb.toString());
System.out.println(n);
} catch (Exception e) {
System.out.println(e.getMessage());
}
出于某种原因,我不断收到输出:
For input string: "4739c5c11d833bb199c16ff95a92b267"
当在此任何地方代码我有这个print
声明...
我想获得上面的十六进制字符串的int值,我不知道发生了什么。
另外'myString'变量值是'123445' – CapturedTree
使用'Long.parseLong(“123445”,16)'将十六进制字符串转换为int/long。在你的情况下,'md5'的值太长,也会被int或long存储。 – neuo
该信息最好直接在问题中。下次放置完整的[mcve],包括完整的异常消息/堆栈跟踪。 – GhostCat