Используйте SHA512 в качестве шифрования на панели Multicraft (в которой вы можете изменить настройки для MD5), но мне нужно использовать более старую версию той же базы данных. Эта старая версия не имела возможности шифрования с SHA512, но только с MD5. Таким образом, все пароли недействительны с MD5.
Можно ли преобразовать все пароли SHA512 в базе данных MySQL в MD5?
SHA512 и MD5 являются хэши, не алгоритмы шифрования. По конструкции они необратимы.
Единственный способ преобразовать эти значения — подождать, пока каждый пользователь войдет в систему, проверить свой пароль по существующему хешу SHA512 и перефразировать его ввод с помощью MD5. Это противоположно тому, как хеши паролей обновляются до более безопасных стандартов.
Но, пожалуйста, пожалуйста, не делай этого MD5 безнадежно сломан. Вы будете делать ваши пользователи огромный медвежья услуга, чтобы вернуться от SHA512 к MD5. Найдите способ использовать более новую версию вашего программного обеспечения.
¹Как отметил zaph в комментарии, «перефразировка» — это упрощение, и в зависимости от того, как на самом деле реализована ваша панель, возможно, сегодня она использует небезопасное хранение паролей.
Для обеспечения разумной безопасности каждый пароль также должен иметь уникальный случайный поваренная соль (который защищает от таких вещей, как радуга столы) и каждый хэш должен быть повторен достаточно много раз, чтобы сделать грубое принуждение непрактично. Поскольку компьютеры становятся все более мощными, число итераций должно быть увеличено. Сегодня принято повторять десятки или сотни тысяч раз.
Криптография потрясающе трудно получить права. Вместо того, чтобы пытаться следовать всем лучшим рекомендациям вручную, используйте библиотеки и функции, которые работают на правильном уровне абстракции и проверены на предмет безопасности. Алгоритм как Bcrypt (через встроенный PHP password_hash
функция, где это в настоящее время алгоритм по умолчанию) будет хорошим выбором.
Краткий ответ: Нет.
Длинный ответ:
По конструкции MD5 и SHA512 являются в одну сторону хэши. Чтобы преобразовать SHA512 в MD5, вам нужно знать и то и другое исходный пароль для каждого пароля, который вы пытаетесь преобразовать, и также соль, которая была использована для их шифрования. Вы почти наверняка не будете знать каждый пароль для каждого из ваших пользователей.
Односторонние хеши работают, фактически приводя один и тот же алгоритм каждый раз, когда пользователь входит в систему. Пользователь вводит свой пароль, алгоритм применяется к нему, и если он полностью совпадает с копией в базе данных, которая уже была хеширована, то Пользователь вошел в систему. Вы не можете использовать какой-либо алгоритм для определения того, каким был исходный пароль, только для сравнения, если результат применения определенного пароля будет с паролем, который уже зашифрован.
MD5 также далеко слабее алгоритм хеширования, чем SHA512. Переход на MD5 сделает ваш пароль далеко менее безопасным, и это будет то, что вы, вероятно, не захотите делать. Вместо этого вы должны искать способ включить новую систему баз данных.