Как я могу преобразовать шестнадцатеричные строки MD5 в строки MD5 base-64? - PullRequest
0 голосов
/ 01 октября 2011

У меня есть несколько паролей, хэшированных в MD5, которые я хотел бы преобразовать в MD5 в криптовом стиле.

Если у меня есть открытый текст, я легко могу создать оба:

% echo -n 'testpass' | md5sum
179ad45c6ce2cb97cf1029e212046e81 -

% echo -n 'testpass' | openssl passwd -1 -stdin -salt ''
$1$$JN/baUhJCUwYKagp48tsP0

Но как мне конвертировать 179ad45c6ce2cb97cf1029e212046e81 в JN/baUhJCUwYKagp48tsP0?

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

Первая строка в шестнадцатеричном формате, а вторая строка - base64.

MD5-хэш - это 128-битное число . Способы его выбора могут быть либо в виде шестнадцатеричной строки, либо в виде строки в кодировке base64 - оба являются просто представлениями 128-битного числа .

Однако ms5sum и openssl passwd не будут шифровать хешировать пароль к тому же 128-хэш-значению, поэтому один и тот же пароль не даст одинаковое 128-битное число, поэтому в ваших примерах один хэш пароля не будет переведен в другой

1 голос
/ 08 марта 2012

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

Алгоритм Apache MD5-Crypt не является суммой MD5 только пароля. Также не вариант -1. Они добавляют что-то или иным образом модифицируют входной пароль, не включая соль, чтобы получить результирующий хэш. Если у вас действительно есть значения хеш-функции MD5 с помощью описанного вами метода передачи строки в md5sum, то полученный хеш-код не может быть обращен ни к чему, что вы можете затем хэшировать в htpasswd-совместимый хеш.

К сожалению

...