На MacOS ви можете використовувати PBKD2 (Key Based Derivation 2), щоб створити безпечні верифікатори паролів. Це прийнятий метод NIST. Поставте випадкову сіль (ви можете зберегти її з хешованим паролем), і кількість ітерацій, таких, як виведення, займає близько 100 мс.
Під час збереження пароля перевірка простого використання хеш-функції не є достатньою і просто додавання солі мало робить для поліпшення безпеки. Замість цього ітерація над HMAC з випадковою солі протягом приблизно 100 мс тривалість і зберегти сіль з хешем. Ще краще використовувати таку функцію, як PBKDF2
, Rfc2898DeriveBytes
, Argon2
, password_hash
, Bcrypt
або подібні функції. Суть полягає в тому, щоб зловмисник витрачав час на пошук паролів грубою силою.
Подивитися NIST Цифрові правила ідентифікації
Див Як використовувати CommonCrypto для PBKDF2 у Swift 2 & amp; 3 або приклад коду.