У меня есть этот псевдокод в 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 для символов (просто дикая догадка).
В любом случае, вопрос будет: как получить исходный массив hash[]
из hexString
.
Весь код здесь, если вы хотите посмотреть на него (это ~ 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]
Большое спасибо!