Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Повторения алгоритма создания хеша sha512

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Повторения алгоритма создания хеша sha512
xTODx
Отправлено: 02 Апреля, 2017 - 16:07:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




Есть в жс-е
CODE (javascript):
скопировать код в буфер обмена
  1. ar r = {};
  2. r.clientId = login;
  3. r.sysId = CONST_SYS_ID;
  4. r.random = Math.random() + " :))";
  5. r.sign = "secret password";
  6. var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA512, password);
  7. hmac.update(JSON.stringify(r));
  8. var hash = hmac.finalize();
  9. r.sign = hash.toString();


При random = "0.3401890288802276 Улыбка)"
Хэш 53ed805b0855deb5c5c8f50c53ec4e36 a7b680c934301c48ffa7748f8973cc57 e5c635aca9d9d0e9d915d8ded1710aa7 c1893cf93cff5db9b8288b38b91d1d79

Стараюсь повторить и сравнить

PHP:
скопировать код в буфер обмена
  1. $random = "0.3401890288802276 :))";
  2. $key = ["clientId" => $login, "sysId" => $sysId, "random" => $random];
  3. $hash = hash_hmac("sha512", json_encode($key),$password);
  4. /*Сравнение хеша с сайта с хешем что вышел*/
  5. echo "53ed805b0855deb5c5c8f50c53ec4e36a7b680c934301c48ffa7748f8973cc57e5c635aca9d9d0e9d915d8ded1710aa7c1893cf93cff5db9b8288b38b91d1d79";
  6. echo "<br/>";
  7. echo $hash;

(Отредактировано автором: 02 Апреля, 2017 - 16:13:21)



-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
Мелкий Супермодератор
Отправлено: 02 Апреля, 2017 - 16:26:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ну для начала у вас даже исходные данные для json разные. В PHP sign не передан.

Затем сверяйте само строковое представление полученного json.
Вообще не надо для ключа криптографии json использовать. Из-за полностью допустимых спецификацией различий в оформлении (отбивка пробелами, табами), финальной запятой, типизации (вдруг у вас sysId в php идёт с mysql и потому является строкой, а в js вы передаёте число), порядка полей в объекте - два json одного и того же объекта в строковом представлении могут быть совершенно разными. А любое различие источника - разумеется даст различие хеша, это одно из базовых требований к алгоритмам хэширования.


-----
PostgreSQL DBA
 
 Top
xTODx
Отправлено: 02 Апреля, 2017 - 20:44:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




Мелкий пишет:
Ну для начала у вас даже исходные данные для json разные. В PHP sign не передан.

Затем сверяйте само строковое представление полученного json.
Вообще не надо для ключа криптографии json использовать. Из-за полностью допустимых спецификацией различий в оформлении (отбивка пробелами, табами), финальной запятой, типизации (вдруг у вас sysId в php идёт с mysql и потому является строкой, а в js вы передаёте число), порядка полей в объекте - два json одного и того же объекта в строковом представлении могут быть совершенно разными. А любое различие источника - разумеется даст различие хеша, это одно из базовых требований к алгоритмам хэширования.

Использую для парсинга.

Спасибо, не заметил что провтыкал с sign. Нужно просто научится генерировать правильно хеш.
Пока-что безрезультатно.


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
Мелкий Супермодератор
Отправлено: 02 Апреля, 2017 - 20:58:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Повторюсь: сверяйте текстовое представление json. Для получения верного хэша, json должен быть идентичный после преобразования в текст.


-----
PostgreSQL DBA
 
 Top
xTODx
Отправлено: 02 Апреля, 2017 - 21:02:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


Помог: 1 раз(а)




Мелкий пишет:
Повторюсь: сверяйте текстовое представление json. Для получения верного хэша, json должен быть идентичный после преобразования в текст.

Я могу посмотреть только переданный аяксом массив, с которого формируется жсон.
js метод не могу подменить.(


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
Мелкий Супермодератор
Отправлено: 02 Апреля, 2017 - 21:29:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




С чего вдруг? Если это браузер - то браузер у вас есть всегда.
Если какое-нибудь nodejs - то сам nodejs у вас тоже есть.
Всё в ваших руках, в чём проблема воспроизвести проверяемый код и ковырять его как вздумается?


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB