2010-12-02 303 views
3

我想散列一個數字,用十六進制字符串表示的Java安全庫。意思是,如果我有字符串「AABBCCDD」,我想散列它不是因爲這是一個ascii輸入,它是0x65,0x65,0x66,0x66,0x67,0x67,0x68,0x68,但作爲四個字節 - 0xAA,0xBB, 0xCC,0xDD。 我設法用較低的值做到這一點,例如「112233445566」(因爲字節是用Java簽名的),但是失敗的數值很高。SHA1哈希十六進制字符串

有人知道如何實施這樣的事情嗎?

感謝, 本雅明

+0

這些不說,採取的方法後'的byte []`作爲輸入?我不太確定我是否明白問題所在。 – 2010-12-02 07:39:11

+0

是的。我假設我在執行之前犯了一些錯誤。 – MByD 2010-12-02 08:10:13

回答

2

基本上你只需要找到一個十六進制解析器 - 有大量各地,擁有one example here,或Apache Commons Codec這和其他的轉換。雖然Java字節確實已簽名,但您將得到與未簽名相同的位模式,因此它們將採用相同的方式。除非你在字節值上執行自己的算術/位移,否則通常忽略字節用Java簽名的事實。

+0

謝謝,正如我寫給gleber(上圖),我已經實現了你的第一個選項。 – MByD 2010-12-02 08:09:21