Я занимаюсь программированием менеджера паролей (только в образовательных целях!) на C++. Чтобы сгенерировать мастер-ключ, моя программа пропустит ранее введенный мастер-пароль через функцию хеширования паролей argon2 для создания мастер-ключа. У меня 1 проблема. Мне нужен способ генерировать соль для использования с этой хэш-функцией. Из моих предыдущих исследований (поиск в Google: генерация соли C++ и поиск в StackOverflow) я видел, как люди делали разные вещи, подобные этому:
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
static const char alphanum[] =
"0123456789"
"!@#$%^&*"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
int stringLength = sizeof(alphanum) - 1;
char genRandom() // Random string generator function.
{
return alphanum[rand() % stringLength];
}
int main()
{
srand(time(0));
for(int z=0; z < 21; z++)
{
cout << genRandom();
}
return 0;
}
Мой вопрос: будет ли достаточно генерации случайной строки с помощью rand(), или есть более приемлемый метод генерации соли или библиотека, которая может сделать это за меня?
P.S. Когда я искал StackOverflow, я действительно мог найти только статьи о PHP и C#.
rand()
; это довольно ужасно. - person Alan Stokes   schedule 30.04.2016