2010-04-06 1 views
3

Является ли поведение алгоритма SHA-1 определенным для строк Unicode? Я действительно понимаю, что сам SHA-1 не заботится о содержимом строки, однако
мне кажется, что для прохождения стандартных тестов для SHA-1 входная строка должна быть закодирована с помощью UTF-8.SHA-1 и Unicode

ответ

4

SHA-1 основан на байтах; он не заботится о структуре данных. Если вы дадите ему кучу байтов, состоящих из строк Unicode, вы получите результат. Имейте в виду, что размер блока составляет 512 бит, поэтому меньшее количество данных может вызвать проблемы с безопасностью.

+0

Я тоже это понимаю. Но что, если я попытаюсь передать тест с помощью «abc», и я даю ему строку «abc», закодированную в UTF-16? Это никогда не пройдет. Вот почему вопрос существует. – Andrew

+0

Конечно, это не работает. SHA-1 сравнивает данные независимо от структуры. Вы должны сравнивать яблоки с яблоками. – WhirlWind

+0

поэтому, когда вы говорите о строке Unicode, которую вы хотите поместить в алгоритм SHA-1, что вы будете определять как яблоки? :) – Andrew