我正在尝试使用MD5散列字符串。我需要哈希值作为Java中的128位无符号整数。
MessageDigest md = MessageDigest.getInstance("MD5");
String toHash = "HashThis";
md.update(toHash.getBytes());
byte[] isHashed = md.digest();
如何将isHashed转换为整数?
答案 0 :(得分:1)
使用BigInteger
。
BigInteger value = new BigInteger(isHashed);
要确保结果值为正(因为字节数组预期为2的补码),请确保最高有效位为零。这可以通过使数组1元素更大,第一个字节为0来轻松实现。
答案 1 :(得分:1)
Java没有128位的int类型。但它有一个BigInteger类,它有一个构造函数,根据需要采用signum和一个表示为byte []的大小。
BigInteger value=new BigInteger(1,isHashed);