Мне было интересно, было ли обычной практикой солить и хешировать пароль, например
E (заполнение || хэш (соль || пароль))
где || это конкатенация, а E использует, например, RSA. В первую очередь я задаю этот вопрос для транспортировки базы данных паролей (а не для онлайн-хранилища, где сервер всегда будет иметь закрытый ключ для расшифровки зашифрованного пароля).
Я знаю, что криптографический хэш должен быть необратимым, но автономная атака грубой силы на слабые пароли легко раскроет пароль. Чтобы в конечном итоге расшифровать запись в этой базе данных, сервер будет знать длину заполнения и просто уберет его, чтобы показать хэш (соль || пароль).
Это не типичная проблема, но я не смог найти упоминания о том, что кому-то нужно правильно транспортировать базу паролей и защищаться от автономных атак.