如何在Java中将md5哈希转换为整数类型?
我正在尝试将md5哈希转换为如何在Java中将md5哈希转换为整数类型?,java,hash,integer,md5,Java,Hash,Integer,Md5,我正在尝试将md5哈希转换为long,就像在python中一样 当我消化“abc”时,我得到(十六进制):“0X900150983CD24FB0D6963F7D28E17F72” 在Java中进行哈希转换的正确方法是什么 public static void main(String[] args) { byte[] md5hex = DigestUtils.md5("abc"); String hex = new String(Hex.encodeHex(md5hex));
long
,就像在python中一样
当我消化“abc”时,我得到(十六进制):“0X900150983CD24FB0D6963F7D28E17F72”
在Java中进行哈希转换的正确方法是什么
public static void main(String[] args) {
byte[] md5hex = DigestUtils.md5("abc");
String hex = new String(Hex.encodeHex(md5hex));
System.out.println(hex);
long lv = Long.parseLong("0X" + hex.toUpperCase(), 16);
System.out.println(lv);
int hext = Integer.parseInt("12346789", 16);
System.out.println(hext);
}
首先,让我们使用一个好的十六进制编码器,类似于
中的一个。 我得到191415658344158766168031473277922803570
如果需要,也可以
System.out.println(bytesToHex(md5hex));
我也会
900150983cd24fb0d6963f7d28e17f72
首先,让我们使用一个好的十六进制编码器,类似于
中的一个。 我得到191415658344158766168031473277922803570
如果需要,也可以
System.out.println(bytesToHex(md5hex));
我也会
900150983cd24fb0d6963f7d28e17f72
MD5的长度为16字节。一个
int
可以容纳4个字节,一个长的可以容纳8个字节。因此,没有正确的方法将md5哈希转换为long或int。我得到的异常是什么?我可以用python实现:>>>int(hashlib.md5(“abc”).hexdigest(),16)19141565834415876168031473277922803570LAN md5的长度为16字节。一个int
可以容纳4个字节,一个长的可以容纳8个字节。因此,没有正确的方法将md5哈希转换为long或int。那么会出现什么异常?我可以用python实现:>>>int(hashlib.md5(“abc”).hexdigest(),16)19141565834415876168031473277922803570L新的BigInteger(xxx,16)。toString(16)?它与xxx
相同,即最后一段代码应该是System.out.println(bytesToHex(md5hex))代码>@Andreas是个好球。我试图复制OP的值。新的BigInteger(xxx,16)有什么意义?toString(16)
?它与xxx
相同,即最后一段代码应该是System.out.println(bytesToHex(md5hex))代码>@Andreas是个好球。我试图复制OP的价值。