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
auto key = hmac::pbkdf2_hmac_sha256(password, salt, iters, 32);
166
167
```
167
168
168
-
Параметры:
169
+
Рекомендации:
170
+
171
+
-**Соль:** случайные 16–32 байта.
172
+
-**Итерации:** подбирайте число так, чтобы вычисление занимало ~100–250 мс на целевой машине.
173
+
-**Длина ключа:** 32 байта.
174
+
-**Алгоритм:** HMAC-SHA-256.
175
+
176
+
Параметры и шифротекст можно сериализовать, например, так:
177
+
`magic|salt|iters|iv|ct|tag`.
178
+
179
+
См. `example_pbkdf2.cpp` для полноценного примера.
180
+
181
+
#### Рекомендуемые параметры
182
+
183
+
| Цель | Итерации | Длина ключа | PRF |
184
+
|--------|---------:|------------:|-------------|
185
+
| Desktop| 600000 | 32 байта | HMAC-SHA256 |
186
+
| Laptop | 300000 | 32 байта | HMAC-SHA256 |
187
+
| Mobile | 150000 | 32 байта | HMAC-SHA256 |
188
+
189
+
#### Примечания по безопасности
169
190
170
-
- `password`, `salt` — байтовые строки; `salt` должна быть уникальной и не короче 16 байт
171
-
- `iterations` — число итераций (≥1), подбирается по [рекомендациям OWASP](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html)
172
-
- `dk_len` — длина ключа в байтах, не более `(2^32−1) * hLen`
173
-
- `prf` — выбор хеша (`Sha1`, `Sha256` по умолчанию, `Sha512`)
191
+
- PBKDF2 зависит от CPU и уязвим для атак с использованием GPU/ASIC, поэтому выбирайте высокое число итераций или более сильные KDF.
0 commit comments