【发布时间】:2011-03-02 16:12:10
【问题描述】:
我在 java 中有这个伪代码:
bytes[] hash = MD5.hash("example");
String hexString = toHexString(hash); //This returns something like a0394dbe93f
bytes[] hexBytes = hexString.getBytes("UTF-8");
现在,hexBytes[] 和 hash[] 是不同的。
我知道我做错了什么,因为hash.length() 是 16,hexBytes.length() 是 32。也许它与 java 使用 Unicode 字符有关(这里只是一个疯狂的猜测)。
无论如何,问题是:如何从hexString 中获取原始的hash[] 数组。
如果你想看的话,完整的代码在这里(大约 40 LOC)http://gist.github.com/434466
该代码的输出是:
16
[-24, 32, -69, 74, -70, 90, -41, 76, 90, 111, -15, -84, -95, 102, 65, -10]
32
[101, 56, 50, 48, 98, 98, 52, 97, 98, 97, 53, 97, 100, 55, 52, 99, 53, 97, 54, 102, 102, 49, 97, 99, 97, 49, 54, 54, 52, 49, 102, 54]
非常感谢!
【问题讨论】: