Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Формат записи (https://forum.zone-game.info/showthread.php?t=43188)

ccc 08.06.2018 09:23

Формат записи
 
Приветствую.

Как записать в таком формате пароль ?

Цитата:

sha1:1000:E8pR8UY8WFo7sA78jn5AYNzvCOTtqkhA:vTR/68/Lc+yYSM7TYCLXFdLl4W1mhpCV

ccc 20.06.2018 16:17

Re: Формат записи
 
Дописал все, кроме этой ссайной шифровки. Не понимаю как оно устроено. Гуглил, сложна.

Объясните пж.

n3k0nation 20.06.2018 17:41

Re: Формат записи
 
PBKDF HMAC SHA1 записанный в стиле APR.

ccc 20.06.2018 21:56

Re: Формат записи
 
Цитата:

Сообщение от n3k0nation (Сообщение 431765)
PBKDF HMAC SHA1 записанный в стиле APR.

Можно чуть подробнее:)(лучше пример). Как загуглить?

PROGRAMMATOR 21.06.2018 01:55

Re: Формат записи
 
http://php.net/manual/ru/function.hash-pbkdf2.php

Полученный хеш в base64. Там два хеша, но данные и параметры хеширования (кроме алгоритма и количества итераций) нам не узнать.

ccc 22.06.2018 16:45

Re: Формат записи
 
PHP код:

    if ( empty($errors)) { // если нет ошибок записываем данные в mysql
        
$user R::dispense('accounts');
        
$user -> login $data['username'];
        
$user -> l2email $data['email'];
        
$salt openssl_random_pseudo_bytes(24);
        
$user -> password base64_encode(hash_pbkdf2('sha1'$data['password'], base64_decode($salt), 100024true));

        
R::store($user); 

Нагуглил... Исправьте в человеческий вид.

Как должно быть algo:iterations:salt:password -> в записи бд

Цитата:

sha1:1000:saiO2ojHlRWn1Jvj8qEEDPOw/aBs0oWo:sVae4V8IGRA69LzrOqN4yVHJpThgSAsU


PHP код:

        $salt 'saiO2ojHlRWn1Jvj8qEEDPOw/aBs0oWo';
        
$hash base64_encode(hash_pbkdf2('sha1'$data['password'], base64_decode($salt), 100024true));
        
$user -> password "sha1:1000:$salt:$hash";

        
R::store($user); 

готово. осталось разобраться как подключить рандомную соль.

PROGRAMMATOR 23.06.2018 04:33

Re: Формат записи
 
$salt = random_bytes(16);
 
Code: PHP

http://php.net/manual/ru/function.random-bytes.php

Или http://php.net/manual/ru/function.op...eudo-bytes.php если PHP < 7.

ccc 26.06.2018 11:42

Re: Формат записи
 
Вот шо наваял

PHP код:

        function getSalt()
        {
            
$charset 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
            
$randStringLen 30;

            
$rand "";
            for (
$i 0$i $randStringLen$i++) {
                
$rand .= $charset[mt_rand(0strlen($charset) - 1)];
            }

            return 
$rand;
        }

        
$salt getSalt();

        
//$salt = random_bytes(24);
        
$hash base64_decode(hash_pbkdf2('sha1'$data['password'], base64_decode($salt), 100024true));
        
$user->password "sha1:1000:$salt:$hash";

        (
R::store($user)); 

Вот эту ошибку периодически получаю в процессе выполнения скрипта, или вообще ничего.
Цитата:

USER ERROR: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value
То есть данные не поступают до бд.

show variables like '%charac%';

Цитата:


+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

show variables like '%colla%';
Цитата:


+----------------------+--------------------+
| Variable_name | Value |
+----------------------+--------------------+
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+----------------------+--------------------+
3 rows in set (0.001 sec)

Таблица акков, а именно паролей тоже в кодировке utf8mb4, utf8mb4_unicode_ci


Текущее время: 17:50. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot