- Расширить столбец для поддержки хэша
- Введите второй столбец для определения стратегии хеширования (или см. Ниже);по умолчанию - MD5 (поскольку это текущий хеш)
- Измените процедуры входа в систему (и аналогичные) и изменения / сброса пароля, чтобы определить, какая стратегия хеширования используется на основе этого значения, а затем применить ее;если значение хешируется с помощью «устаревшего» хеша, то обновите его в режиме без вывода сообщений (поскольку у пользователя будет пароль в виде простого текста после того, как вы его подтвердите)
- После некоторого разумного периода времени рассмотрите возможностьблокировка пользователей, которые не обновили хэши старых паролей
Вы можете автоматически определять некоторые стратегии хэширования, например, прямой MD5 или SHA1, на основе длины их закодированного вывода -MD5 в шестнадцатеричном формате занимает 32 байта, в то время как SHA1 требует 40. Однако «стратегия хеширования» может также включать в себя информацию (значимую для приложений - убедитесь, что вы тщательно ее документировали!) о любых других операциях, выполняемых с хешем, таких как солениемеханизм, или число хеш-итераций, и, как правило, немного более устойчивым.В будущем вы, возможно, захотите ввести третий хеш (скажем, Tiger-192) и повторить процесс обновления.
Если вы не можете сэкономить другой столбец, тогда расширьте существующий, чтобы поддерживать префикс с некоторым индикатором.хэша, например {SHA1}xxxxxxxxxxxxx
- старые хэши не будут иметь префикса и могут быть приняты как MD5.