Я попытался получить хэш SHA1 для строки юникода, некоторую китайскую строку в коде Java Java в Eclipse. Я использовал обычный MessageDigest класс и некоторый фрагмент кода Hex для преобразования из Интернета.Java SHA1 для unicode?
Интересно, как проверить правильность хеша и его шестнадцатеричное преобразование? Я вставил эту китайскую строку в ряд онлайн-хеш-конвертеров, но все они произвели другой хэш. То же самое покрытие отлично работает с строками ascii .
Я новичок в этом, поэтому некоторые указатели будут оценены!
br, perza
Идея заключается в сохранении хеш-кода на сервере, а когда пользователь входит в систему с разных телефонов, на сервер передается только хеш. Таким образом, один и тот же хеш должен производиться в разных ОС. Простите мою новичку здесь, но кажется, что это работает только с чистым ascii, это правда? Таким образом, я предполагаю, что мне нужно преобразовать, например. сначала base64, затем SHA для совместимости между платформами? – perza
@perza: Нет, абсолютно нет. Вам просто нужно каким-то образом преобразовать текст в двоичный код для начала - и использование UTF-8 или UTF-16 было бы уместным. Пока вы можете убедиться, что код на всех телефонах (и на сервере) использует ту же самую кодировку, все будет хорошо. –
Итак, я предполагаю, что онлайновые генераторы хэшей не могут правильно обрабатывать строки юникода и, таким образом, дают разные результаты. Хорошо, я считаю, что это достаточно хороший ответ :) – perza