Re: Допоможіть розшифрувати дані треків Т2
Значить фокуси з бітами можна виключити.
В базі є номер картки на п’ятнадцять цифр?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Алгоритми та структури даних, технології → Допоможіть розшифрувати дані треків Т2
Для відправлення відповіді ви повинні увійти або зареєструватися
Значить фокуси з бітами можна виключити.
В базі є номер картки на п’ятнадцять цифр?
Є
663636386163322D36656261613639656263
Є ще одна закономірність - треки на 15 цифр починаються з трійок до шісток, на 16 - од одиниці до дев`яток, а та на 19 цифр - з трійок до шісток
Переможця зобов'яжу поліпшити вікістаттю "Карта з магнітною стрічкою".
2)Роздільник - D або =
Я звичайно можу помилятись, але по моєму в даному випадку роздільник - "2D" -> hex(2d) = dec(45) -> Alt+45 = символ '-'.
Чому тоді контрольна сума попередніх чисел завжди дорівнює 2?
Оцетактак! Тут кожні два числа означають шістнадцяткову цифру! leofun01, ви, схоже, перемогли.
хтось може детально описати проблему і її вирішення? от я навіть не розумію, шо то за дампи, де вони взялися, що означають, чому вони якось там зашифровані, і як ви змогли їх розшифрувати? що за роздільник?
Вийшло щось таке:
663034653441634663 2D 41653246664132 2
f04e4AcFc - Ae2FfA2
443644613061366536 2D 4436343434443063 2
D6Da0a6e6 - D6444D0c
443765343430444444 2D 304633343733343734 2
D7e440DDD - 0F3473474
538443736343046 2D 303339354137394135 2
58D7640F - 0395A79A5
539304146363439 2D 413334653337303839
590AF649 - A34e37089
66363638616332 2D 36656261613639656263
f668ac2 - 6ebaa69ebc
Але щось я ще не врахував ...
Чому шіснадцяткові цифри в різному регістрі ?
Доречі, а знаєте як швидко, без надмірних зусиль переводити такі стрічки ?
В браузері відкриваємо нову вкладку, в URL пишемо будь-який сайт, в кінці додаємо '?' і якийсь параметр, '=', [наша стрічка], але через кожні 2 символи пишемо '%'
Наприклад:
6565653437464641612D3438416534306341662
%65%65%65%34%37%46%46%41%61%2D%34%38%41%65%34%30%63%41%66 2 (останню '2' відкидаємо)
http:// replace.org.ua/?v=%65%65%65%34%37%46%46%41%61%2D%34%38%41%65%34%30%63%41%66
Після натискання ентер мій фаєрфокс оновив URL і видав
http:// replace.org.ua/?v=eee47FFAa-48Ae40cAf
Відповідно маємо
eee47FFAa-48Ae40cAf
хтось може детально описати проблему і її вирішення? от я навіть не розумію, шо то за дампи, де вони взялися, що означають, чому вони якось там зашифровані, і як ви змогли їх розшифрувати? що за роздільник?
Ну і не треба, краще спатиметься.
FakiNyan написав:хтось може детально описати проблему і її вирішення? от я навіть не розумію, шо то за дампи, де вони взялися, що означають, чому вони якось там зашифровані, і як ви змогли їх розшифрувати? що за роздільник?
Ну і не треба, краще спатиметься.
нерозуміння б'є по моїй самооцінці
Вийшло щось таке:
663034653441634663 2D 41653246664132 2 f04e4AcFc - Ae2FfA2 443644613061366536 2D 4436343434443063 2 D6Da0a6e6 - D6444D0c 443765343430444444 2D 304633343733343734 2 D7e440DDD - 0F3473474 538443736343046 2D 303339354137394135 2 58D7640F - 0395A79A5 539304146363439 2D 413334653337303839 590AF649 - A34e37089
Але щось я ще не врахував ...
Чому шіснадцяткові цифри в різному регістрі ?
а хіба регістр має значення?
хтось може детально описати проблему і її вирішення? от я навіть не розумію, шо то за дампи, де вони взялися, що означають, чому вони якось там зашифровані, і як ви змогли їх розшифрувати? що за роздільник?
Я не зможу детально описати проблему, але приблизно проблема виглядає так:
Є дані (в нашому випадку - тексти), які можуть містити корисну інформацію (а можуть і не містити). І потрібно за властивостями цих даних підібрати алгоритм, який конвертує ці дані в текст, який можна легко розпізнати. Наприклад, це можуть бути номери карток, ip-адреси, ще якась неочікувана інфа. Індус дав підказку, в якому напрямку копати, але я не знаю чи буде моя інфо корисною для нього.
Вирішення ... Ну задача ще не вирішена, копаємо дальше.
Роздільник - така частина даних, якою можна різати дані на частини без втрат важливої інфо.
а хіба регістр має значення?
Може і не має. Але мене мучить думка про те, що я не знаю навіщо вони так зробили (зашифрували).
upd: Згадався фільм "Ігри розуму"
нерозуміння б'є по моїй самооцінці
В мене те саме.
Виявилося, що такий запис даних досить поширений.
Попались мені рядки:
34363130324330312d444638312d343545352d413144342d353430434233373233423538,SID0000126,2016-01-21 14:38:52+0400,2606,8A9DF2DB-37A7-4BB0-B836-D140BA70AFB5,
30453436463641432d433338352d344536382d424643312d344442323544463937363238,SID0000129,2015-12-13 12:42:01+0400,1020,D6391DAD-ECC5-40E8-8B60-BBBB93B2CFA5,
33353944314338462d383439392d344337362d384341462d313434413641394136463430,SID0003307,2016-02-07 13:20:34+0400,2011,D7F44E1C-F600-4DBD-A94E-CE4331DBFB41,
Де перша частина із 72 символів - покоцаний GUID / UUID.
Даних багато, тому довелося писати програму, яка це все обробить.
Кусок Java-коду для перетворення стрічки:
public static String convertFromHex(String s) {
int len = s.length() >> 1;
byte[] array = new byte[len];
for(int i = 0; i < len; ++i) {
array[i] = 0;
array[i] |= Character.digit(s.charAt(i << 1), 16) << 4;
array[i] |= Character.digit(s.charAt((i << 1) + 1), 16);
}
return new String(array);
}
public static String convertToHex(String s) {
int len = s.length();
char[] array = new char[len << 1];
int v;
for(int i = 0; i < len; ++i) {
v = s.charAt(i);
array[i << 1] = Character.forDigit((v >> 4) & 0xf, 16);
array[(i << 1) + 1] = Character.forDigit(v & 0xf, 16);
}
return new String(array);
}
private static final DateFormat formatter =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
Просто залишу це тут. Раптом комусь пригодиться.
На сайті regex101.com мої рядки задовільняють регулярному виразу:
(?<id>(?<d8>(3\d|[46][1-6]){4}){2}(2[dD](?&d8)){4}(?&d8){2}),SID(?<sid>\d{7}),(?<adt>(?<year>\d{4})\-(?<month>0[1-9]|1[0-2])\-(?<day>0[1-9]|[1-2]\d|3[0-1])\s(?<hh>[0-1]\d|2[0-3])(:(?<mm>[0-5]\d)){2}[\+\-](?&hh)(?&mm)),(?<aeid>\d{4}),(?<msgid>(?<h4>[0-9A-Fa-f]{4}){2}(\-(?&h4)){4}(?&h4){2}),(?<regid>\d*(?=(?&id))|\d*)
Якщо потрібно використати регулярний вираз в програмі, де не підтримуються іменовані групи, тоді:
(3[0-9]|[46][1-6]){8}(2[dD](3[0-9]|[46][1-6]){4}){4}(3[0-9]|[46][1-6]){8},SID[0-9]{7},[0-9]{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])\s([0-1][0-9]|2[0-3])(:[0-5][0-9]){2}[\+\-]([0-1][0-9]|2[0-3])[0-5][0-9],[0-9]{4},[0-9A-Fa-f]{8}(\-[0-9A-Fa-f]{4}){4}[0-9A-Fa-f]{8},([0-9]+)?
Для відправлення відповіді ви повинні увійти або зареєструватися