Как ограничить длину шифрования и соли?

1

В настоящее время я использую пакет SimpleEncrypto NuGet для шифрования моих паролей, например:

var crypto = new SimpleCrypto.PBKDF2();
var encrypPass = crypto.Compute(user.Password);
var newUser = db.Users.Create();
newUser.PasswordSalt = crypto.Salt;

Проблема заключается в том, что пароль и соль сгенерированы около 100 символов, и я действительно просто стараюсь держать его намного короче, поэтому он будет вписываться в таблицу в базе данных. Пользователю разрешено вводить максимум 20 символов.

Как ограничить длину шифрования и соли?

  • 1
    20 символов должны быть не пределом зашифрованного текста, а паролем. Один из вариантов - изменить размер поля БД, поскольку вы не храните пароль в виде простого текста.
Теги:
encryption
asp.net-mvc

1 ответ

0

Во-первых, вы не шифруете, а хешируете. Вы можете усекать хеши любой длины. Конечно, вы рискуете столкнуться больше, чем больше усекаете хэш.

Просто обрезайте хэш до 20 символов. 20 символов base64 должны иметь достаточную силу для пароля. Это 6*20=120 бит энтропии, который, вероятно, больше, чем пароль почти всех пользователей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню