Я смотрю на некоторый существующий код, который генерирует солт, который используется в качестве ввода в хеш аутентификации.
Соль имеет длину 16 байтов и генерируется сначала с использованием генератора случайных чисел ОСчтобы получить 8 байтов случайных данных.
Затем каждый байт в 8-байтовом буфере используется для помещения данных в 2 байта 16-байтового буфера следующим образом:
out[j] = hexTable[data[i] & 0xF];
out[j-1] = hexTable[data[i] >> 4 & 0xF];
Где out
- это 16-байтовая соль, data
- начальный 8-байтовый буфер, j
и i
, очевидно, являются просто инкрементами цикла, а hexTable
- это просто массив шестнадцатеричных цифр, т.е. 0
- F
.
Почему все это делается?Почему 16-байтовая соль просто не заполняется случайными данными для начала?Зачем проходить этот сложный процесс?
Является ли то, что здесь делается, стандартным способом получения солей?Какая польза и смысл в этом, по сравнению с генерацией 16 случайных байтов?