Конвертировать base64'd SHA1-хэши в шестнадцатеричные хэши - PullRequest
8 голосов
/ 26 мая 2010

У меня есть список паролей в MySQL, которые генерируются с использованием

$hash = '{SHA}' . base64_encode(sha1('some string here', true));

Мне нужно преобразовать их в то, что будет эквивалентно

$hash = sha1('some string here');

Поскольку это пароли, которыенаша почтовая система использует, и мы хотим конвертировать в другую почтовую систему (но требует, чтобы это был шестнадцатеричный хеш-код из 40 символов: (

Как мне конвертировать из одного формата в другой (я уверен, чтоЯ делал это раньше, но с другой стороны, хотя я не могу найти код!)

В качестве заметки я упомянул, что данные находятся в mySQL - это не имеет значения - я знаю, как получитьданные, только чтобы не преобразовывать их.

Хэш такой же - я пытаюсь преобразовать только способ упаковки информации (я думаю, что это просто нужно преобразовать из base64 в base16, но это всего лишьдогадаться!)

Ответы [ 2 ]

16 голосов
/ 26 мая 2010
$binary = base64_decode(substr($hash, 5));
$hex = bin2hex($binary);
0 голосов
/ 26 мая 2010

Скважина base64_decode() может быть найдена в ручном вводе base64_encode.
И я уверен, что у них есть способ конвертировать необработанный формат в комментариях к ручному вводу sha1, если вам слишком сложно написать его самостоятельно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...