Говорить особо нечего, для хеширования пароля самое то.
API:
- bcrypt_hash (playerid, const callback [], const input [], cost, const args [] = "", {Float, _}: ...)
-
playerid- id игрока -
callback[]- обратный вызов для выполнения после хеширования -
input[]- строка в хеш -
cost- коэффициент работы (4 - 31) -
args- нестандартные аргументы
Использование:
main(){ bcrypt_hash(playerid,"OnPassswordHash","text",12); } forward OnPassswordHash(playerid); public OnPassswordHash(playerid){ //hashing completed }
- bcrypt_get_hash(dest[],size = sizeof(hash))
-
dest[]- строка для хранения хешированных данных -
size- максимальный размер целевой строки
Использование:
main(){ bcrypt_hash(playerid,"OnPassswordHash","text",12); } forward OnPassswordHash(playerid); public OnPassswordHash(playerid){ new dest[60]; bcrypt_get_hash(dest); printf("hash : %s",dest); }
- bcrypt_verify(playerid,callback[],input[],hash[])
-
playerid- id игрока -
callback[]- обратный вызов для выполнения после хеширования -
input[]- текст для сравнения с хешем -
hash[]- хеш для сравнения с текстом
Использование:
main(){ bcrypt_hash(playerid,"OnPassswordHash","text",12); } forward OnPassswordHash(playerid); public OnPassswordHash(playerid){ new dest[60]; bcrypt_get_hash(dest); bcrypt_verify(playerid,"OnPassswordVerify","text",dest); } forward OnPassswordVerify(playerid,bool:success); public OnPassswordVerify(playerid,bool:success){ //success denotes verifying was successful or not if(success){ //verfied } else{ //hash doesn't match with text } }
- bcrypt_set_thread_limit(value)
value - количество рабочих потоков за раз
Использование:
main(){ bcrypt_set_thread_limit(3); }
Страница на гитхаб: клик ( кликабельно )