Можно ли определить тип хеша? - PullRequest
4 голосов
/ 19 января 2010

Я знаю, что вы можете сравнить длину, но многие типы хэшей имеют одинаковую длину.

Есть ли способ определить тип хеша и был ли он засолен?

Например:

hash=2bf231b0e98be99a969bd6724f42a691
hash=4ac5a4ff764807d6ef464e27e4d1bee3
hash=4d177cec31d658ed22cc229e45d7265e

Ответы [ 4 ]

5 голосов
/ 19 января 2010

Этот конкретный пример представляет собой буквенно-цифровое представление из 32 символов, которое почти наверняка равно MD5.

SHA-1 обычно представляет собой буквенно-цифровую строку из 40 символов (как и SHA-0)

MD5 и SHA-1 составляют подавляющее большинство хешей, которые вы найдете в дикой природе.

5 голосов
/ 19 января 2010

Нет;Вы в значительной степени можете определить его только по длине.

- Edit:

Очевидно, однако, если у вас есть доступ к программе, генерирующей хэши, и вы можете предоставить ввод, то выможно сравнить с некоторым результатом, который вы также рассчитываете (при условии, что вы знаете соль.

Если вы действительно застряли, вы можете также вывести его из используемого языка (то есть, если это PHP, скорее всего, MD5)и т. д.

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

4 голосов
/ 12 июля 2013

Да, возможно в определенной степени определить тип используемого алгоритма хеширования.

Одним из инструментов, который я часто использую для этого, является хеш-идентификатор https://code.google.com/p/hash-identifier/.

Например, я создаю хэш файла Hash_ID.py:

$ openssl sha -sha256 Hash_ID.py 
SHA256(Hash_ID.py)= 5382a8826c972f8fa8687efe1f68e475c02af4bf542b0d7e68b9deffd388db96

При запуске Hash_ID.py запрашивается ввод хэша:

$ python Hash_ID.py 
   #########################################################################
   #     __  __                     __           ______    _____           #
   #    /\ \/\ \                   /\ \         /\__  _\  /\  _ `\         #
   #    \ \ \_\ \     __      ____ \ \ \___     \/_/\ \/  \ \ \/\ \        #
   #     \ \  _  \  /'__`\   / ,__\ \ \  _ `\      \ \ \   \ \ \ \ \       #
   #      \ \ \ \ \/\ \_\ \_/\__, `\ \ \ \ \ \      \_\ \__ \ \ \_\ \      #
   #       \ \_\ \_\ \___ \_\/\____/  \ \_\ \_\     /\_____\ \ \____/      #
   #        \/_/\/_/\/__/\/_/\/___/    \/_/\/_/     \/_____/  \/___/  v1.1 #
   #                                                             By Zion3R #
   #                                                    www.Blackploit.com #
   #                                                   Root@Blackploit.com #
   #########################################################################

   -------------------------------------------------------------------------
 HASH: 5382a8826c972f8fa8687efe1f68e475c02af4bf542b0d7e68b9deffd388db96

Possible Hashs:
[+]  SHA-256
[+]  Haval-256

Least Possible Hashs:
[+]  GOST R 34.11-94
[+]  RipeMD-256
[+]  SNEFRU-256
[+]  SHA-256(HMAC)
[+]  Haval-256(HMAC)
[+]  RipeMD-256(HMAC)
[+]  SNEFRU-256(HMAC)
[+]  SHA-256(md5($pass))
[+]  SHA-256(sha1($pass))

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

3 голосов
/ 17 января 2012

Пост из будущего:

2bf231b0e98be99a969bd6724f42a691 MD5: gombaliste0
4ac5a4ff764807d6ef464e27e4d1bee3 MD5: gombaliste2
4d177cec31d658ed22cc229e45d7265e MD5: gombaliste129

...