Вы фактически говорите о реализации PBKDF2 или функции получения ключа на основе пароля. По сути, это то же самое, что BCrypt, преимущество в том, что вы можете увеличить количество процессорного времени, которое требуется для получения пароля. Преимущество этого по сравнению с чем-то вроде BCrypt состоит в том, что, зная, сколько «итераций» вы пропустили, пароль, когда вам нужно его увеличить, вы можете сделать это без сброса всех паролей в базе данных. Просто сделайте так, чтобы ваш алгоритм взял конечный результат, как если бы он был на n-й итерации (где n - предыдущий счетчик изменений), и продолжайте!
Рекомендуется использовать правильную библиотеку PBKDF2 вместо создания собственной, потому что, как со всей криптографией, давайте посмотрим правде в глаза, единственный способ узнать, является ли что-то безопасным, если это было «проверено» межсетями. (см. здесь )
Системы, использующие этот метод:
В .NET уже реализована библиотека. Смотри здесь
Для шифрования файлов в Mac, Linux и Windows используется множество версий этого метода шифрования (более 10 000+) для защиты своих файловых систем.
Сети Wi-Fi часто защищены с помощью этого метода шифрования
Источник
Спасибо за вопрос, это заставило меня исследовать метод, который я использовал для защиты своих паролей.
TTD