SHA256_PassHash
Материал из Pro-Pawn Wiki
Данная функция была добавлена в SA-MP 0.3.7 R2 и не работает в более ранних версиях. |
Описание:
Вычисляет хеш-сумму пароля по алгоритму SHA-256.
Параметры:
(password[], salt[], ret_hash[], ret_hash_len) |
password | Пароль, хеш-сумму от которого нужно вычислить. |
salt | Криптографическая соль к паролю. |
ret_hash | Массив для сохранения в нём хеш-суммы. |
ret_hash_len | Размер массива ret_hash .
|
Возвращаемое значение:
Возвращает длину строки с хеш-суммой (
64
символа). Сама хеш-сумма косвенно возвращается через параметр ret_hash
в виде строки в верхнем регистре.
Примечание |
Размер массива ret_hash должен быть равен как минимум 64+1 ячейке, иначе строка с хеш-суммой будет урезана (причём урезана не совсем правильно - см. ниже).
Соль должна быть уникальной для каждого игрового аккаунта - это необходимо, чтобы у разных аккаунтов при использовании одинакового пароля получились разные хеш-суммы. Хорошей практикой считается в качестве соли генерировать случайную строку с минимальной длиной, равной размеру данных хеша, т.е. в случае с SHA-256 длина соли должна составлять минимум 32 символа (256 бит --> 32 байта) [1]. Перед хешированием соль добавляется после пароля. Например, если задать пароль "abcd" и соль "123" , хеш-сумма будет вычислена из строки "abcd123" .
|
Пример использования:
main()
{
new hash[64 + 1];
SHA256_PassHash("The quick brown fox jumps", " over the lazy dog", hash, sizeof(hash));
// Вывод: "Hash: D7A8FBB307D7809469CA9ABCB0082E4F8D5651E46D3CDB762D02D0BF37C9E592"
printf("Hash: %s", hash);
}
{
new hash[64 + 1];
SHA256_PassHash("The quick brown fox jumps", " over the lazy dog", hash, sizeof(hash));
// Вывод: "Hash: D7A8FBB307D7809469CA9ABCB0082E4F8D5651E46D3CDB762D02D0BF37C9E592"
printf("Hash: %s", hash);
}