Вычислить соль с известным простым текстом и хешем?

У меня есть строка, которая использовалась в веб-приложении с хешированием md5 для предложения хеша. У меня также есть хеш. Но md5 строки не соответствует хешу, таким образом, я предполагаю, что существует включенная соль. Есть ли какое-либо программное обеспечение, которое может помочь мне определить соль?

2
задан 26.12.2010, 09:13

1 ответ

В стандартных хеш-функциях (например, пароли UNIX в/etc/shadow) соль хранится как часть хеша.

Передайте сохраненное значение хэш-функции как соль, и необходимо получить корректный результат.

Хешированное значение пароля в/etc/shadow является на самом деле $ разграниченная запись. Например, у нас есть этот хеш пароля 'blarg':

$1$KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0

Существует три поля, разделенные $, которые являются

  1. Хеш-функция (в этом случае '1', представляя MD5)
  2. Соль (который является 'KfcI/JTQ'),
  3. Значение хэш-функции (который является 'b5VTf4i9Mnf6QFgLuVZNM0'),

При использовании mkpasswd несколько раз, хеш изменится.

$ mkpasswd -m md5 blarg
$1$Gst52IWk$8ARVeSlpkcZOlyKV10Slu/

$ mkpasswd -m md5 blarg
$1$JeqRviA/$GnH/AvGnZEG9wLfJjiaAt1

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

$ mkpasswd -m md5 -S KfcI/JTQ blarg
$1$KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0

Можно также передать в целом хэше пароля (хотя опустив хеш-функцию).

$ mkpasswd -m md5 -S KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0 blarg
$1$KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0

На Linux типом хеша можно управлять в/etc/login.defs. Будьте очень осторожны при изменении этого, можно полностью заблокировать себя из системы. Я предлагаю читать страницу справочника тщательно конкретно рассмотрение заголовков MD5_CRYPT_ENAB и ENCRYPT_METHOD.

1
ответ дан 12.12.2019, 00:20

Теги

Похожие вопросы