Как перевести пароли с md5 на bcrypt?
Сморите по регламенту сайта, каков официальный срок действия пароля (если нет такого, то определяетесь с этим).
1. Создаете в базе новое поле под bcrypt пароль, а также дату смены пароля.
2. Делаете авторизацию использующую как md5, так и bcrypt если последняя задана.
3. Разрабатываете систему оповещения для пользователей, у которых истек срок действия пароля.
4. Ставите дату пароля такой же как и дату регистрации пользователя, если не использовали это раньше.
5. При смене пароля пишете только bcrypt, md5 не используете, лучше сделать поле-флаг, что пользователь менял пароль уже по новой технологии.
В течение пару периодов срока действия пароля будет постепенный переход на новый хэш.
Активных пользователей придется как-то стимулировать, чтобы сменили пароль.
Неактивные будут восстанавливать пароль, например, по email, если они вернутся на ваш ресурс и вы решите когда-нибудь больше не поддерживать md5 хэш.
PS: Принудительно заставлять менять пароль пользователю - это не самый оптимальный вариант. Заменяйте хэш пароля по новому алгоритму, как только получили от пользователя исходный пароль, который валиден по старому алгоритму, например, в процессе авторизации.
в общем в соседнем ответе перепутана политика смены паролей и смена алгоритмов хэширования.

Смена алгоритмов немного попроще
Заводится новое поле под нормальный хэш, дальше при авторизации смотрим - если оно есть то авторизуем по нему
Если нету - авторизуем по старому хэшу и хэшируем пароль в новый.