У меня возникают проблемы с сравнением хэшей SHA256, сгенерированными разными языками/функциями.Исправлена реализация SHA256 с символами UTF-8
Например, SHA256("í")
либо возвращается:
f3df1f9c358ae8eceb8fce7c00614288d113ad55315f4ebb909774a7daadfc84
-или-
127035a8ff26256ea0541b5add6dcc3ecdaeea603e606f84e0fd63492fbab2c5
Какой из выше хэш является правильным для строки одного символа, и то, что правильный способ обработки UTF -8 строк?
Нет такой вещи, как символ «UTF-8». Существуют символы Unicode, и они могут быть * закодированы * как UTF-8, если хотите. Вы не сказали нам, на каком языке вас интересует вообще, но в основном процесс должен состоять в том, чтобы кодировать строку в двоичные данные с использованием выбранной вами кодировки (например, UTF-8), взять хэш SHA-256 этого и затем преобразовать этот хэш обратно в строку с использованием hex или base64. –