BCrypt - Форум - Читерский Форум | Читы для игр SAMP,CS:GO,GTA5,PUBG,Minecraft,CoD,Warface,WoT | Магазин аккаунтов SAMP-RP,Advance-RP,Diamond-RP,логов samp,Steam,WoT,Warface,PUBG,GTA5

Страница 1 из 11
Модератор форума: Artem_Buero, PasqualeQQ, tumkin 
Форум » Pawno программирование » Include и Plugins » BCrypt (Достойная замена MD5)
BCrypt
Mario_FerroДата: Суббота, 15.10.2016, 20:47 | Сообщение # 1
Новичок
Сообщений: 1
Статус: Offline
Bcrypt для SA:MP
Последний релиз: v2.2.3 (2014-11-24)
Скачать
Исходный код

Введение:
BCrypt является функцией хеширования паролей,
которая автоматически реализовывает 'соли' (salt) на все пароли
Bcrypt широко рекомендуется и часто рассматривается
как наиболее безопасный способ хеширования паролей

Преимущества:
- Все пароли автоматически 'солятся'
- BCrypt медленный потому что делает жесткий offline перебор паролей
- Плагин является многопоточным, поэтому почти не оказывает влияния на производительность сервера
- Совместим с PHP функцией password_verify() и password_hash()

Установка и использование:
- Скопировать bcrypt-samp.dll и bcrypt-samp.so в папку plugins
- Включить файл в Ваш filterscript или gamemode ( #include <bcrypt> )
- Вызов bcrypt_check осуществляется, если Вы хотите проверить пользователя на правильность ввода пароля,
результат такой проверки можно получить путём вызова функции bcrypt_is_equal <br / angry например: new bool: match = bcrypt_is_equal(); )
- Если Вы решили перейти с другой шифровальни на эту, то используйте bcrypt_needs_rehash, чтобы проверить,
должна ли хэш обновляться (возвращает true, если хэш является актуальной)

Функции:
Код
bcrypt_hash(key[], cost, callback_name[], callback_format[] = "", {Float, _}:...);
bcrypt_get_hash(dest[]);
bcrypt_check(key[], hash[], callback_name[], callback_format[] = "", {Float, _}:...);
bcrypt_is_equal();
bcrypt_needs_rehash(hash[], cost);
bcrypt_find_cost(time_target = 250);
bcrypt_debug(BCRYPT_DEBUG_LEVEL:level = BCRYPT_LOG_ERROR);
bcrypt_set_thread_limit(value);


Хэширование:
Функция bcrypt_get_hash возвращает результат из функции bcrypt_hash (хэш записывается в 61 символ)
60+null, которая может быть определена как BCRYPT_HASH_LENGTH
Ниже выведен пример того, как фраза "Hello World!" хэшируется 3 раза
Хэш совершенно уникален каждый раз потому что при вычислении хэш используется случайная 'соль' (salt)
Код
1. $2y$12$33T1WbJGYD9YVKpBShTDsOOlS3248tApLCndjz28n0cyWZR1HYXy6
2. $2y$12$ExnQyld7o8w0QbWmAJgsJuygOwlFlbMITgzuw9g.6jbnscTd5kSK6
3. $2y$12$ivsAFLaGM52oCZnFe/QKBuoJy0osV8UsbJODPBUxeY3XSBhr739Yi


Cost:
Cost представляет собой фактор работы, который пропорциональна количеству времени, которое требуется для расчёта хэш
Cost от 10 до 13 - оптимально для большинства серверов
Диапазон разрешенного cost'a - от 4 до 31 (но лучше использовать 12)

Перейдём к примеру использования:
Код

#include <bcrypt>
#define BCRYPT_COST 12
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
forward OnPasswordHashed(playerid);
forward OnPasswordChecked(playerid);
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOG_REGISTER: bcrypt_hash(inputtext, BCRYPT_COST, "OnPasswordHashed", "d", playerid);
        case DIALOG_LOGIN:
        {
            //Переменная hash это хэш, загруженный из базы данных.
            //Произвести загрузку можно на этапе проверки на существования аккаунта
            //Это может быть записано как PlayerInfo[playerid][pPassword]
            bcrypt_check(inputtext, hash, "OnPasswordChecked", "d", playerid);
        }
    }
}
public OnPasswordHashed(playerid)
{
    new hash[BCRYPT_HASH_LENGTH+1];
    bcrypt_get_hash(hash);
    //далее идёт запись хэша в базу. Как - решайте сами
    return 1;
}
public OnPasswordChecked(playerid)
{
    new bool:match = bcrypt_is_equal();
    if(match==true)
    {
        //действия, если пароль совпал
        return 1;
    }
    //действия, если пароль не совпал
    return 1;
}


Устранение неисправностей:
Проблема: отсутствие MSVCR120.dll
Решение: скачайте и установите 32 разрядную версию [url="https://www.microsoft.com/ru-ru/download/details.aspx?id=40784"]Visual C++ Redistributable Packages for Visual Studio 2013(vcredist_x86.exe)

Авторы:
- Johnson_boy
- maddinat0r (предложивший ценные идеи)

Отсебятина:
Тема была взята с официального форума SA:MP и переведена на русский язык
Ещё нигде не видел просвещение данной темы на русских форумах по pawn
Думаю, этот крипт придётся достойной заменой MD5 и SHA
Не агитирую заменять различные крипты на этот, но создам тему для просвещения масс
Читая мной написанный перевод, придётся подумать, хотя я старался его писать более менее понятным
Прежде, чем вы начнёте обвинять и сквернословить данный плагин, прошу хотя бы ознакомиться с темой
Надеюсь, данная тема заслуживает хотя бы лайка. Как показала практика: перевести тему легче, чем составить, но не намного
Впервые перевожу подобный текст и раньше думал, что переводить тексты - как семечки щёлкать, но как же я ошибался ..
Вопрос: "А как хранить этот хэш в базе данных, если он каждый раз уникален"
Ответ: "Записать и хранить одну 'соль', плагин сам выберет, какого типа эта соль"
Вопрос: "Зачем мне использовать BCrypt, если он медленный ? Лучше буду использовать сторонние крипты"
Ответ: "BCrypt - широко рекомендуемое решение для тех, кто заботится о безопасности пользователей."
Ответ №2 на вопрос №2: "BCrypt - многопоточный плагин, поэтому не тормозит работу сервера"
Ответ №3 на вопрос №2: "BCrypt - медленный, потому что проводит довольно жестокий offline перебор паролей"


Сообщение отредактировал Mario_Ferro - Суббота, 15.10.2016, 20:52
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
Форум » Pawno программирование » Include и Plugins » BCrypt (Достойная замена MD5)
Страница 1 из 11
Поиск:
Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
1813027 Толя_Якут Невалид [Толя_Якут]

Личный STEAM аккаунт[Все ... [koberman227]

[CLEO] BMX [_CM_PROXY__]

[CLEO] Турбо Маркус [_CM_PROXY__]

Команда сайта. (24.10.201... [JesusLa]

Слив 9 ранга Aztec SRP 09 [El_Alvaro]

Больше, чем просто дизайн... [frøkner]

Помощь в проверке файлов ... [dreamingfly]

Пак оружия/звуков/эффекто... [dreamingfly]

✅Скупка/Продажа виртов AR... [Lfrr[CМ]]

[1]>Общение читеров [CM] [9991]

[2]>S0beit - pr9n project for samp 0.3.7 [9481]

[3]>RakBot - Качай аккаунты не напрягаясь! [9443]

[4]>Часто задаваемые вопросы... [8198]

[5]>Вопросы и ответы [6436]

[6]>[0.3.7][RUS] Sobeit modified by MishaN [6228]

[7]>[FREE] AntiAFK_R 3.4.6 by Ruskadance [0.3z-R2] [6220]

[8]>Продажа вирт 1кк АРП~350р ДРП~350р.СРП~150р. [6148]

[9]>Бесконечное слово [4686]

[10]>[Samp-Rp.Ru]Обновлен список Админов [4143]

[11]>[CLEO] Вопрос - Ответ [4115]

[12]>Курилка [3240]

[1]>АК_47 [28286]

[2]>GеNius [6707]

[3]>romka619 [5379]

[4]>[CM]Russel [5018]

[5]>[CM]AGRESSOR [4654]

[6]>Сэс [4430]

[7]>Snake_Firm [4301]

[8]>Artem_Buero [4132]

[9]>[CM]Durman [3262]

[10]>sky_Woker [2997]

[11]>iMaddy [2871]

[12]>Sa1nteD [2659]

[13]>Logan™ [2610]

[14]>Ch0c0Cube [2456]

[15]>[CM]Рафаэль [2297]

Misha31121993 [25.11.2017|06:43]

Porn_Hubbb [25.11.2017|06:16]

Trolololer [25.11.2017|05:26]

B1ood [25.11.2017|04:38]

artemka12345 [25.11.2017|03:30]

BarbaNegra [25.11.2017|03:19]

Lfrr[CМ] [25.11.2017|03:09]

kirill2003106 [25.11.2017|02:52]

Valera_Gysakov [25.11.2017|02:07]

sayron5000 [25.11.2017|01:54]

synatyn [25.11.2017|01:40]

awdasdawd [25.11.2017|01:26]

KotovHacks [25.11.2017|01:21]

goodmode228 [25.11.2017|01:04]

Whiskasinsugar [25.11.2017|00:41]


CM Team © 2009-2017 Администрация не несёт ответственности за размещённые материалы. Условия пользования
Все материалы предоставлены в ознакомительных целях и администрация предлагает удалить их после ознакомления.

Положение о защите персональных данных на сайте, Пользовательское соглашение, Договор оказания услуг.