You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> PBKDF2 в основном нагружает CPU; для пользовательских паролей по возможности предпочтительны KDF с высокой требовательностью к памяти, например Argon2 или scrypt.
***Base64** — стандартный `+/` и URL-безопасный `-_` алфавиты; `pad=true/false` включает или отключает `=`. `strict=true` отклоняет пробелы, смешанный паддинг и `+`/`/` при URL-алфавите; `strict=false` игнорирует ASCII-пробелы, допускает эти символы и добавляет недостающий паддинг.
258
+
***Base32** — `pad=true/false` управляет `=`; `strict=true/false` работает аналогично.
259
+
***Base36** — кодирует сырые байты в ASCII-цифры/буквы; при декодировании требуется полный ввод.
* Функции могут бросать `std::invalid_argument` (неверные параметры) и `std::runtime_error` (внутренние ошибки).
292
-
*`constant_time_equal` предполагает публичность длин; сравнивайте размеры заранее.
343
+
*`pbkdf2`, `hkdf_*`, HOTP/TOTP и временные токены проверяют параметры и бросают `std::invalid_argument`; функции временных токенов также могут бросать `std::runtime_error`, если системные часы недоступны.
344
+
*`base64_decode` и `base32_decode` помечены `noexcept` и возвращают `false` при некорректном вводе.
345
+
*`constant_time_equal` — `noexcept`; перед сравнением проверьте совпадение размеров.
0 commit comments