Я не совсем уверен в этом варианте, так как я не специалист по криптографии. Пожалуйста, поправьте меня, если я ошибаюсь в какой-то момент здесь!
Я думаю, что у Дэйва П. явно лучший выбор.
... но. Существует автоматическое решение - хэшировать сами старые хэши. То есть возьмите текущие хэши и снова хешируйте их с помощью более сильного алгоритма. Обратите внимание, что, насколько я понимаю, здесь вы не получите никакой дополнительной защиты от длины хеша, а только добавленную криптографическую сложность нового алгоритма.
Проблема, конечно, в том, что проверка пароля должна затем проходить через оба хэша. И вам придется сделать то же самое для каждого нового пароля. Который, ну, в значительной степени глупый . Если вы не хотите использовать подобную схему, как объяснил Дейв П., чтобы в конечном итоге перейти к однохешевым паролям с новым алгоритмом хеширования ... в таком случае, зачем вообще беспокоиться об этом? (Конечно, вы можете использовать его в броском «Улучшенная безопасность для всех паролей, примененная немедленно!» - на презентации в корпоративных костюмах, с относительно прямым лицом ...)
Тем не менее, это опция, которая может быть применена немедленно ко всем текущим паролям, без какой-либо постепенной миграции.
Но, о, боже, кто-то посмеется над этим кодом позже! :)