2010-12-02 1 views
3

Я пытаюсь использовать число, представленное шестнадцатеричной строкой с помощью библиотеки безопасности Java. Смысл: если у меня есть строка «AABBCCDD», я хочу хэшировать ее не так, как это будет вход ascii, который равен 0x65, 0x65, 0x66, 0x66, 0x67, 0x67, 0x68, 0x68, но как четыре байта - 0xAA, 0xBB, 0xCC, 0xDD. Мне удалось сделать это с такими низкими значениями, как «112233445566» (так как байты подписаны на Java), но с большими значениями не удалось.SHA1 Hash on Hex String

Кто-нибудь знает, как реализовать такую ​​вещь?

Спасибо, Биньямин

+0

Эти не метод, взявшие `байт []` в качестве входных данных? Я не совсем уверен, что понимаю, в чем проблема. – 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