Calcular sal com texto simples e hash conhecidos?

Calcular sal com texto simples e hash conhecidos?

Eu tenho a string que foi usada em um webapp com hash md5 para criar um hash. Eu também tenho o hash. Mas o md5 da string não corresponde ao hash, então acho que há um sal envolvido. Existe algum software que possa me ajudar a determinar o sal?

Responder1

Nas funções de hash padrão (por exemplo, senhas UNIX em /etc/shadow) o salt é armazenado como parte do hash.

Passe o valor hash armazenado como salt e você deverá obter o resultado correto.

O valor da senha com hash em /etc/shadow é na verdade um registro delimitado por $. Por exemplo, temos este hash da senha ‘blarg’:

$1$KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0

Existem três campos separados por $'s que são

  1. A função hash (neste caso '1', representando MD5)
  2. O sal (que é 'KfcI/JTQ')
  3. O valor do hash (que é 'b5VTf4i9Mnf6QFgLuVZNM0')

Se você usar o mkpasswd várias vezes, o hash mudará.

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

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

No entanto, passando o salt (ou seja, o segundo campo) do valor de hash acima, podemos compará-lo com o hash original:

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

Você também pode passar todo o hash da senha (embora omitindo a função hash).

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

No Linux, o tipo de hash pode ser controlado em /etc/login.defs. Tenha muito cuidado ao alterar isso, você pode ficar completamente fora do sistema. Sugiro ler a página de manual com atenção, observando especificamente os títulos MD5_CRYPT_ENAB e ENCRYPT_METHOD.

informação relacionada