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
Форумы портала PHP.SU :: Версия для печати :: Побитовые операции
Форумы портала PHP.SU » » Вопросы новичков » Побитовые операции

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

1. КимЧенИн - 01 Декабря, 2021 - 01:07:17 - перейти к сообщению
Нужно переписать js функцию на php
Там используются побитовые операции. Числа которые используются в таких операциях в отличии от php 32 разрядные. Более того, когда происходит переполнение, возвращается отрицательное значение.
И это отрицательное число дальше используется в функции.
Как такое реализовать на php?
2. Vladimir Kheifets - 01 Декабря, 2021 - 10:07:46 - перейти к сообщению
КимЧенИн пишет:
Нужно переписать js функцию на php
Там используются побитовые операции. Числа которые используются в таких операциях в отличии от php 32 разрядные. Более того, когда происходит переполнение, возвращается отрицательное значение.
И это отрицательное число дальше используется в функции.
Как такое реализовать на php?

Добрый день!
Не могли бы Вы показать код JS-функции и код её вызова?
Удачи!
3. КимЧенИн - 01 Декабря, 2021 - 13:43:51 - перейти к сообщению
Здравствуйте
эта функция вычисляет хеш для захода в админку, вот так она вызывается
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var pass = 'qwerty';
  3. var user = 'admin';
  4. var token = 'qeTYkhKjkjkbb42334656';
  5. token=token.trim();
  6.  
  7.  
  8. var psd = base64encode(SHA256(user + base64encode(SHA256(pass)) + token));
  9.  

вот основной момент который все вычесляет
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function S (X, n) {
  3.         return ( X >>> n ) | (X << (32 - n));
  4.     }
  5. function R (X, n) {
  6.         return ( X >>> n );
  7.     }
  8.  
  9. function Ch(x, y, z) {
  10.         return ((x & y) ^ ((~x) & z));
  11.     }
  12.  
  13. function Maj(x, y, z) {
  14.         return ((x & y) ^ (x & z) ^ (y & z));
  15.     }
  16.  
  17. function Sigma0256(x) {
  18.         return (S(x, 2) ^ S(x, 13) ^ S(x, 22));
  19.     }
  20.  
  21. function Sigma1256(x) {
  22.         return (S(x, 6) ^ S(x, 11) ^ S(x, 25));
  23.     }
  24.  
  25. function Gamma0256(x) {
  26.         return (S(x, 7) ^ S(x, 18) ^ R(x, 3));
  27.     }
  28.  
  29. function Gamma1256(x) {
  30.         return (S(x, 17) ^ S(x, 19) ^ R(x, 10));
  31.     }
  32.  
4. Vladimir Kheifets - 01 Декабря, 2021 - 20:23:58 - перейти к сообщению
КимЧенИн пишет:
...эта функция вычисляет хеш для захода в админку...

Правильноль я понял - Вы заходите в админку из JS, а хотите заходить из PHP
и Вы хотите написать собственную PHP-функцию для вычисления хеш такую же как в JS?
М.б. для вычисления хеш попробовать использовать стандартные функции PHP.
5. КимЧенИн - 01 Декабря, 2021 - 22:25:43 - перейти к сообщению
Да, спасибо за участие. Я думал это самописный китайский код, оказалось что это аналог base64_encode и sha

 

Powered by ExBB FM 1.0 RC1