Computa sal com texto simples conhecido e hash?

2

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 combina com o hash, então estou supondo que há um sal envolvido. Existe algum software que possa me ajudar a determinar o sal?

    
por Neil 26.12.2010 / 08:13

1 resposta

1

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

Passe o valor do hash armazenado como o sal e você deve obter o resultado correto.

O valor da senha hash em / etc / shadow é na verdade um registro $ delimitado. Por exemplo, temos esse 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 de hash (que é 'b5VTf4i9Mnf6QFgLuVZNM0')

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

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

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

No entanto, passando o sal (ou seja, o segundo campo) do valor de hash acima, podemos associá-lo ao hash original:

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

Você também pode passar o hash da senha inteira (embora omita 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 bloquear-se completamente fora do sistema. Sugiro que leia a página de manual cuidadosamente, olhando especificamente para os títulos MD5_CRYPT_ENAB e ENCRYPT_METHOD.

    
por 26.12.2010 / 09:36