Проверьте, хэширована ли строка ххх-битами - PullRequest
4 голосов
/ 16 января 2011

Как проверить, была ли строка хеширована до определенных битов?Я хочу выполнить модульное тестирование моего метода (который использует SHA512), я хочу написать тест, чтобы проверить, была ли возвращенная строка хэшированной 512-бит.

Ответы [ 3 ]

2 голосов
/ 16 января 2011

Если это односторонний хеш (вы не утверждаете, что это так, но использование SHA512 подразумевает его), то его нельзя расшифровать.На самом деле, единственный способ проверить это:

  • Взять известный ввод (т. Е. Известную текстовую строку).
  • Рассчитать другими средствами, которым вы доверяете, ожидаемыйвыходное значение шифрования должно быть.
  • Убедитесь, что ваша программа или подпрограмма создает этот вывод для этой строки.

Повторяйте с различными входами, пока не будете удовлетворены.

2 голосов
/ 16 января 2011

Вы не можете определить, зашифрована ли строка, только самой строкой. Можно ввести данные, которые похожи на результат вашей хэш-функции SHA512, но без фактического хеширования.

Если вы знаете, что он хэширован и хотите знать, использовался ли SHA512, единственное, что вы можете проверить, это то, что длина строки составляет 512 бит, но это точно не скажет вам, является ли она SHA512.

1 голос
/ 16 января 2011

Пожалуйста, повторите за мной: хеширование не является шифрованием.Входные данные для вашего алгоритма хеширования потеряны и не могут быть восстановлены.

SHA-512 имеет вывод длиной 512 бит , поэтому кто-то может представить вам 512 бит и сказать, что это вывод алгоритма SHA-512, может быть правильным.Насколько я знаю, на выходе алгоритма SHA нет легко идентифицируемого шаблона, поэтому они могут просто представить вам 512 бит чистого случайного шума.

Можете ли вы объяснить, почему вы хотите определить алгоритм, используемый для генерации определенного хеша?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...