我正在使用一個c#web服務,其中一個參數是發送一個md5散列。 Java創建帶有符號的MD5散列(在字節數組中包含負數)並且C#生成無符號數(在字節數組中不包含負數)。java如何得到unsightned md5散列
我已經經歷了多個類似的問題在stackoverflow中,但沒有找到任何令我滿意的。
我需要的是無符號字節數組,類似於一個c#生成的。我曾嘗試使用BigInteger,但我需要它在一個無符號的字節數組,因爲我需要做進一步處理之後。 BigInteger給了我一個整數,使用tobytearray()仍然有負數。
如果我必須做2補充atleast可以請一些請告訴我如何做到這一點。然後我可以循環通過字節數組並將負數轉換爲正數。
請儘快
幫助我使用下面的Java代碼生成MD5哈希
String text = "abc";
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5hash = new byte[32];
try {
md.update(text.getBytes("utf-8"), 0, text.length());
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
md5hash = md.digest();
嗯,我看不出這可能是一個問題......而Java確實使用無符號字節,在任何情況下按位表示都是正確的... – fge