2010-12-02 227 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

相关问题