#difflelog #diffle #gamedev hehe

Pojawiło się pytanie o to jak działają hashe w linkach. A siedziałem cicho, bo kogo to interesuje. A ja szczerze bardzo zadowolony jestem jak to działa i tylko czekałem. dx

@Heheszki zwrócił uwagę, że te same hasła mają ten sam koniec. To prawda.

Wczorajszy (niedzisiejszy) wynik:
https://deykun.github.io/diffle-lang/pl?r=QIpUTYtUWbl5SM2UWLllGcuQDZk1iclRnL0gDOtMXYr5CMuITMuEjLxEjL2gTMtQXeyVWblhSI

Jego hash:
QIpUTYtUWbl5SM2UWLllGcuQDZk1iclRnL0gDOtMXYr5CMuITMuEjLxEjL2gTMtQXeyVWblhSI

Wchodzimy np. https://onlinestringtools.com/reverse-stringi odwracamy kod:
IShlbWVyeXQtMTg2LjExLjEuMTIuMC5rYXMtODg0LnRlci1kZDQucGllLWU2MS5lbWUtYTUpIQ

Dekodujemy bash64 np. https://www.base64decode.org/ i dostajemy:
!(emeryt-186.11.1.12.0.kas-884.ter-dd4.pie-e61.eme-a5)!

Jak ktoś da za krótki link to mu urwie hasło i wyświetli “Niestety ten link wygasł lub jest uszkodzony.” @Felonious_Gru czasami wstawia takie linki dając spacje. !( i )! są z tego samego powodu.

Co znaczą części
emeryt - hasło

186 - dzień roku
jeśli ktoś przestawi godzinę i wrzuci to jak zobaczy, że my mamy 185 dzień i to jutrzejsze hasło to zamiast spoilerów jest “Ten link powinien wkrótce działać".

11 - prawidłowych
1 - w złej pozycji
12 - nieprawidłowych
0 - wpisanych jako nieprawidłowe
Te liczby nie są wyświetlane w rezultacie, po nich są słowa i dla hasła emeryt i słów dalej jest liczony wynik tak jak w normalnej grze, te cyfry służą jako suma kontrolna, jak coś jest inaczej to link wygasł.

kas-884 - kasztan
ter-dd4 - terror
pie-e61 - pierw
eme-a5 - emeryt (hasło)
Z tego jestem dumny. Jak wpisujecie kasztan, to diffle pobiera chunk-kas.json z tablicą słów na kas, kąs etc. 884 to pozycja słowa kasztan w systemie szesnastkowym w pobranej tablicy.

Dlaczego? Bo krócej. 243 to w systemie szesnastkowym F3. A Bash64 to będzie MjQz i RjM, cel to mieć url sensownej długości. Z tego samego powodu nie ma tam całych słów.

Akurat w naszym przypadku to nie ma takiego znaczenia, bo link by był krótszy z całymi słowami.
!(emeryt-186.11.1.12.0.kasztan.terror.pierw.emeryt)!

Ale hasło było krótkie i nie miało polskich znaków (te w bashu są zwykle dłuższe) tu długość jest stała 6 znaków, a przy słowach startowych po 15 liter to się szybko zwraca.

But there is more…
Wychodzę z założenia, że jak ktoś strzela dużo słów to w pewnym momencie ma początek słowa.

I na przykład wpisane po kolei:
korzyść, korzeń, korytarz, kora, koran

W tym co wyżej skutkuje kor-123.kor-420.kor-312.kor-12.kor-1098
Ale ja wiedząc, że początek jest ten sam tnę te słowa do kor-123.420.312.12.1098
+ potem do szesnastkowego jeszcze (1098 -> 44a, 12 -> c).

Jak po kor jest kon to jest n-cyfra i odtwarza te litery patrząc na wcześniejsze słowo.

I teraz czasami aktualizuje słownik słów (nie wygrywających tylko tych do wpisania) i wtedy te cyfry się mogą przesunąć, jeśli suma kontrolna się rozejdzie, jest informacja, że link wygasł, ale teoretycznie jeśli po aktualizacji suma działa to link może działać i jest też jakieś ryzyko, że słowa się zmieniły, ale bez wpływu na wynik wtedy czyjś wynik ma oszukane słowo/a.

Nie ma co tej wiedzy używać do oszukiwania, bo wystarczy w trybie prywatnym zgadnąć hasło i potem w normalnym wpisać co się chce i się będzie miało super linka z wynikiem.

Z programistycznych rzeczy to testy jednostkowe nie są tak szanowane, ale właśnie ten ficzer jest nimi pokryty i każdy etap tego wygenerowania linku z słów i słów z linku jest pokryty testami i to po prostu ma działać i się nie psuć.

#difflepl #diffleen #grywebowe
Cybulion

Wlasnie tak rzeczowej odpowiedzi sie po tobie spodziewałem. Piękne.

Felonious_Gru

@Deykun no elo, coś mam zjebane w telefonie i czasem doklei spacje, czasem enter gdzies pod koniec. Jak zauważę to poprawiam a jak nie to nie xd

Heheszki

@Deykun Ha! DZIĘKUJĘ że zaspokoiłeś moją ciekawość 🥹 Dotarłem do odwrócenia, ale skorzystałem z kiepskiego dekodera który wyrzucił krzaki, wróciłem do punktu wyjścia. W końcu doszedłem do wniosku, że pewnie api podmienia niektóre znaki w sposób który mnie nie ciekawi, bo jednak szukałem czegoś co będzie widać też gołym okiem :) Bardzo fajne.

Felonious_Gru

@Deykun


Nie ma co tej wiedzy używać do oszukiwania

Teraz to mi nadepnąłes na odcisk

Dzemik_Skrytozerca

Dałoby się poprosić o dodanie tagu #grywebowe do podsumowania? Ludzie zapominają to doklejać do postów.

Deykun

@Dzemik_Skrytozerca nie dałoby rady, bo postują też angielskie diffle, i nie dodałbym tam. Daj #diffle na czarno i będziesz miał gwarancje, że wytniesz też zapominalskich.

Dzemik_Skrytozerca

@Deykun


Dzięki za wyjaśnienie.


Psst. Nie daje nic na czarna bo lubię czasem robić gownoburze.

Zaloguj się aby komentować