[英]How to convert A string that represents an integer to unsigned byte array in Java?
[英]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.