Я использую следующие методы для создания соленого и хешированного пароля из crypto lib в nodejs:
crypto.randomBytes(size, [callback])
crypto.pbkdf2(password, salt, iterations, keylen, callback)
Для вызова randomBytes (создания СОЛЬ) какой размер я должен использовать? Я слышал 128-битные соли, возможно, до 256 бит. Похоже, эта функция использует размер в байтах, поэтому я могу предположить, что размер 32 (256 бит) достаточен?
Для вызова pbkdf2, что такое большое количество итераций и какая хорошая длина для ключа (keylen)?
Кроме того, для хранения я видел примеры хранения соли, длины, итераций и derviedkey в том же столбце. Я использую пример, который разделяет 4 на ::
, т.е.:
salt::derivedKey::keyLength::iterations
Сделав это, я могу разделить на ::
, чтобы получить 4 значения, поэтому я могу сгенерировать производный ключ на основе предоставленного пароля, чтобы узнать, совпадает ли он. Правильно ли это это хранить? Или я должен быть немного более "обманчивым" в сочетании этих ценностей?