Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中将md5哈希转换为整数类型?_Java_Hash_Integer_Md5 - Fatal编程技术网

如何在Java中将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));

我正在尝试将md5哈希转换为
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的价值。