簡體   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