繁体   English   中英

如何在Java中将字节数组转换为无符号的128位整数?

[英]How to convert byte array to unsigned 128 bit integer in Java?

我正在尝试使用MD5哈希字符串。 我需要在Java中将哈希值作为128位无符号整数。

MessageDigest md = MessageDigest.getInstance("MD5");

String toHash = "HashThis";
md.update(toHash.getBytes());
byte[] isHashed = md.digest();

如何将isHashed转换为整数?

使用BigInteger

BigInteger value = new BigInteger(isHashed);

为确保结果值为正(因为字节数组预期为2的补码),请确保最高有效位为零。 这可以通过使数组1元素更大(第一个字节为0)来轻松实现。

Java没有128位int类型。 但是它有一个BigInteger类,该类具有一个构造函数,该构造函数可以根据需要采用信号和大小表示为byte []。

BigInteger value=new BigInteger(1,isHashed);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM