Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.63 KB | None | 0 0
  1. //Надо из строки вида: 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F
  2. //получить число 2135
  3. //делим строку на 3 части, 13,14,13 символов
  4. //далее XOR между собой и берем остаток от деления на 10000
  5.  
  6. //то, что мне прислал дед
  7. //=======================================================================//
  8.  
  9. SELECT login,v0,v1,v2, z, z % 10000
  10. FROM(SELECT DISTINCT
  11. int8(('\x0' || left(login, 13))::bytea)
  12. # int8(('\x' || left(right(login, 27), 14))::bytea)
  13. # int8(('\x0' || right(login, 13))::bytea) AS z
  14. , login,int8(('\x0' || left(login, 13))::bytea) AS v0,int8(('\x' || left(right(login, 27), 14))::bytea) AS v1, int8(('\x0' || right(login, 13))::bytea) AS v2
  15. FROM public.gate
  16. WHERE login ~ '^[0-9A-F]{40}$'
  17. )z
  18. ;
  19. login | v0 | v1 | v2 | z | ?column?
  20.  
  21. //из строки 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F у него получается 2135
  22.  
  23. //=======================================================================//
  24. //как делаю я
  25. //generateID(), генерит данную строку, она такая же 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F
  26.  
  27.     String first = generateID().substring(0, 13);
  28.     String second = generateID().substring(13, 27);
  29.     String third = generateID().substring(27);
  30.  
  31.     long a = Long.parseLong(first.trim(), 16);
  32.     long b = Long.parseLong(second.trim(), 16);
  33.     long c = Long.parseLong(third.trim(), 16);
  34.    
  35.     long res = (a ^ b ^ c) % 10000;
  36.  
  37.     Log.d(TAG, "getPincode: " + res);
  38. //у меня из строки 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F получается 2285
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement