n.b. Я не специалист по криптографии (именно поэтому я использую библиотеку, такую как NaCl).При использовании libsodium-net мне не нужно создавать и хранить соли?
Из того, что я прочитал на эту тему, самый надежный способ хранения пользовательских паролей в базе данных - хранить хэш и соль, используемые для генерации этого хэша. Я решил использовать libsodium-net для этой цели, но теперь у меня остается вопрос в теме: мне не нужно создавать и хранить соли? Я спрашиваю, потому что libsodium-сеть включает в себя следующие функции:
// this uses the default Strength.Interactive hashing algorithm
var hash = PasswordHash.ScryptHashString(password);
var isValid = PasswordHash.ScryptHashStringVerify(hash, password);
Там не кажется, необходимость использования соли, когда либо производящий или проверка хэша. На самом деле, нет перегруженных методов ScryptHashString и ScryptHashStringVerify, которые принимают соль. Я чувствую, что мне не хватает чего-то очевидного здесь. Я? Или libsodium-net устраняет необходимость в солях?
является правильным. Вам не нужно сохранять соль и другие параметры (максимальная память и максимальная скорость). Все уже сохранено в возвращаемой строке. Сама соль автоматически генерируется 'ScryptHashString()'. –