Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Надо из строки вида: 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F
- //получить число 2135
- //делим строку на 3 части, 13,14,13 символов
- //далее XOR между собой и берем остаток от деления на 10000
- //то, что мне прислал дед
- //=======================================================================//
- SELECT login,v0,v1,v2, z, z % 10000
- FROM(SELECT DISTINCT
- int8(('\x0' || left(login, 13))::bytea)
- # int8(('\x' || left(right(login, 27), 14))::bytea)
- # int8(('\x0' || right(login, 13))::bytea) AS z
- , 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
- FROM public.gate
- WHERE login ~ '^[0-9A-F]{40}$'
- )z
- ;
- login | v0 | v1 | v2 | z | ?column?
- //из строки 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F у него получается 2135
- //=======================================================================//
- //как делаю я
- //generateID(), генерит данную строку, она такая же 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F
- String first = generateID().substring(0, 13);
- String second = generateID().substring(13, 27);
- String third = generateID().substring(27);
- long a = Long.parseLong(first.trim(), 16);
- long b = Long.parseLong(second.trim(), 16);
- long c = Long.parseLong(third.trim(), 16);
- long res = (a ^ b ^ c) % 10000;
- Log.d(TAG, "getPincode: " + res);
- //у меня из строки 7B48027C4ECFD8AD36B6DD4AD7FAE89444A6F47F получается 2285
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement