Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Akademia GMCLANu
Kategorie bazy artykułów
Artykuły -> Game Maker -> Kursy GML
Treść artykułu
Szyfrowanie danych
autor: gnysek (11.06.05) | czas czytania: 1 minuty, 42 sekund
Na początku tworzymy nową grę.
Robimy pierwszy skrypt, i nazywamy go zaszyfruj.
Wpisujemy w nim:
gml:
text=argument0;
len=string_length(text);
szyfr='';
for(i=1; i<len+1; i+=1)
{
szyfr+=string(ord(string_char_at(text,i)))
+'x'+string(100+round(random(99)))
+'$';
}
return szyfr;

Teraz tworzymy drugi skrypt i nazywamy go odszyfruj.
gml:
text=argument0;
pos=0;
len=string_count('$',text);//zamień to $ przy zamianie innych!
szyfr='';
for (i=1; i<len+1; i+=1;)
{
pos=string_pos('x',text);
szyfr+=chr(real(string_copy(text,1,pos-1)) );
/*pos - 1 -> pobiera text do pozycji o 1 mniejszej
od pozycji znaku 'x' */

len2=string_length(text);
pos=string_pos('$',text);
text=string_delete(text,1,pos);
/*pos - 1 -> kasuje text z pozycja znaku '$' */
}
return szyfr;


Teraz stwórz obiekt i daj mu w create kod:
gml:
txt='tekst do zaszyfrowania';
txt2=zaszyfruj(txt);
txt3=odszyfruj(txt2);


a teraz w draw:
gml:
draw_text(0,0,txt2);
draw_text(0,16,txt3);


Możesz uruchomić program.
Na ekranie ukaże się niemieszczący się w ekranie napis:
cytat:
696x187$606x142$642x155$690x141$696x165$192x130$600x185$666x161$
192x104$732x105$582x157$690x131$732x192$726x145$612x102$684x132$
666x177$714x197$582x130$660x142$630x174$582x160$

Jest to nasza zaszyfrowana wiadomość.

Teraz napewno nikt tego nie odkoduje. No chyba, że widział ten artykuł, dlatego teraz wytłumaczę jak dodatkowo zabezpieczyć.

W pętli FOR pobieramy kolejne litery. Przetwarzamy je na ASCII, potem dodajemy znak x losową liczbę z zakresu 100-199 i znak $, który oznacza koniec danego znaku. Aby utrudnić komuś zadanie, możemy napisać:
gml:
szyfr+=string(ord(string_char_at(text,i))*5)

wtedy każdy znak będzie mnożony przez 5. Mozna wpisać tutaj dowolną liczbę, lub działanie (wtedy umieść je w nawiasach). Należy wtedy jeszcze w odszyfrowywaniu dodać:
gml:
szyfr+=chr(real(string_copy(text,1,pos-1))/5);

aby liczba przed odszysfrowaniem została podzielona przez to przez co wcześniej ją mnożono.

Jeżeli wykorzystacie skrypt w swojej grze, napiszcie o mnie w creditsach.
głosów: 7 | ocena: 7.00 oceń zasób | dodał: gnysek
Komentarze
stron: 1

1


av

gnysek (19:15, 11.06.2005)

Oczywiście, to jest jedna z łatwiejszych form szyfrowania, skrypt po pięciu minutach przeróbki zamienia liczby na litery i wtedy szansa odszyfrowania spada drastycznie.

av

Tymon (19:41, 11.06.2005)

Super Ale i tak ja bym zrobił to inaczej

av

bigshark (21:11, 11.06.2005)

nom nom fajne, ja bym to zrobił inaczej niz gnysek i jeszcze bardziej inaczej niz tymon ale fajne to jest i tak

av

Ranmus (9:45, 12.06.2005)

No to podajcie swoje pomysły. Algorytmów kodowania jest bez liku. Uważam, że do niewielkiego typu danych kodowanie w GML jest całkiem dobrym rozwiązaniem. Natomiast przy bardzo dużych danych to chyba lepiej skorzystać z jakiegoś dll'a co by GM'a nie zabić. ;P

av

dziadekkleofas (10:08, 12.06.2005)

Najlepiej skompresować plik swoim własnym kompreserem ;p. Nikt oprócz ciebie nie rozpakuje tak więc nie rozszyfruje.

av

Tymon (10:55, 12.06.2005)

Ranma, przecież to by sie prawie na tym samym opierało. Tylko że ja to bym chciał zrobić na pojedyńczych znakach. Czyli np. literze P będzie odpowiadać S

av

Marmot (13:10, 12.06.2005)

A czemu tak Tymon? Nie lepiej zastosować ROT-13? Pełno jest DLLi do tego, a algorytm jak nawet jest dość prosty do niego.

av

Ranmus (13:30, 12.06.2005)

Tymon: Oczywiscie, ze by sie na tym samym opieralo, ale tu chodzi o SZYBKOSC gml'a.

av

Firemark (19:50, 12.06.2005)

lol
dobre to,przyda sie w pewnej mojej grze

av

Bartek (Kamrat) (16:05, 25.06.2005)

Fajniutka sprawa

~anomymous (15:28, 11.01.2006)

zrobiłem to co mówisz ale gra uruchamia się normalnie
:-(

av

Marmot (7:06, 12.01.2006)

Przecież to jest artykuł na szyfrowanie, to co to ma wspólnego z odpalaniem gry?

av

kubasz (16:02, 4.01.2008)

Bo ja chyba zrobię trudne działanie matematyczne!!!
np. szyfr+=string(ord(string_char_at(text,i))*9+30-1)

av

Yoda (0:00, 5.01.2008)

O ja ale trudne działanie - ja nie moge...

av

adam014 (12:18, 5.01.2008)

@Yoda
Trudne czy nie trudne,ale jak by nie napisał to byś nie wiedział jakie i z rozszyfrowania nici

stron: 1

1



Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
7 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 6, userów: 1, ukrytych: 0
ANtY
Użytkownicy na czacie discord
gnysek (13:58, 18.02.19):
bo tam są głównie XMLe, wiec kazdy edytor do www się nada
gnysek (13:58, 18.02.19):
ja otwierałem w phpstormie i robiłem replace
nowy_user (13:45, 18.02.19):
BTW. Na forum YoYo coraz większe naciski ze strony użytkowników. Podoba mi się to, że użytkownicy wywierają presję na Yoyo, aby produkt i forum dalej się rozwijały. Nie podoba mi się natomiast to, że Yoyo samo nie wychodzi z inicjatywą :/
nowy_user (13:44, 18.02.19):
Dzięki za info, postaram się jeszcze pokombinować z GMEdit , może tam będzie ta opcja.
gnysek (13:28, 18.02.19):
a faktycznie, nie ma globalnego replace, to w GMS2 tylko, trzeba robić globalny find i ręcznie zmieniać
nowy_user (10:30, 18.02.19):
Niestety, w edit jest opcja Find a resource (Ctrl+R) ale to pozwala wyszukiwać np. całe obiekty sprity itd. Nie do końca mi o to chodziło. To, co ja bym chciał zrobić to np. podmienić nazwę jednej zmiennej, która jest dość nieintuicyjna, a pojawia się bardzo często, i jest porozsiewana po różnych obiektach i skryptach. Chciałbym móc podmienić nazwę tej zmiennej we wszystkich miejscach, za jednym zamachem...
gnysek (10:05, 18.02.19):
wejdź do menu "Edit" i tam chyba będzie, wraz ze skrótem.
nowy_user (9:24, 18.02.19):
Panowie, prosta sprawa, nie wiem czy czegoś nie widzę przez jakieś chwilowe zaćmienie umysłu, ale gdzie w GM1.4 jest opcja globalna 'search and replace' ? Lokalnie, dla danego obiektu pojawia sie po wciśnięciu ctrl+F , natomiast globalnie, jak wcisnę ctrl+shit+F to pojawia się sama wyszukiwarka, bez opcji replace... Chciałem zmienić nazwę jednej zmiennej, chyba nie będę musiał tego robić ręcznie?
Konrad-GM (0:12, 18.02.19):
Yup, dokładnie tak powinno chodzić, potem jest trochę więcej różnorodnych pułapek, więc robi się coraz trudniejsze
I am Lord (0:06, 18.02.19):
ale aż tak? www.youtube.com...eature=youtu.be
Konrad-GM (23:58, 17.02.19):
Ten kurczak szybko chodzi, więc to ficzer jest, żeby za łatwo nie dało się przejść gry
I am Lord (23:52, 17.02.19):
ok teraz 8, ale nie wiem czy u mnie czasem nie za szybko chodzi ten kurczak
I am Lord (23:50, 17.02.19):
5 jajaec zdobyłem
I am Lord (23:46, 17.02.19):
12 minut zostało a nie mam game playu jeszcze tylko sama grafika
I am Lord (23:46, 17.02.19):
ja nie zdąrze
Konrad-GM (23:41, 17.02.19):
Dodałem grę na ligę, ale zczaiłem się dopiero teraz, że czarny kolor to przecież też kolor kek, nie bijcie
gnysek (10:35, 15.02.19):
jak jeszcze gdzieś zostały, dawajcie znać
I am Lord (17:40, 14.02.19):
to się nie sprawdzi przy takiej małej ilości osób. Żadne posty się nie gubią tutaj w tłumie żeby je wyróżniać
I am Lord (17:40, 14.02.19):
wyłącz te oceny
gnysek (10:29, 14.02.19):
jeszcze wieczorem zajrzę w kod, jak nie znajdę żadnej opcji to wyłączę ocenianie w tych działach i tyle, i tak mało kto tego potrzebuje, to nie stackoverflow
gnysek (0:46, 14.02.19):
musiałbym chyba wyłączyć oceny
nowy_user (20:43, 13.02.19):
To prawda, jest to irytujące.
I am Lord (20:11, 13.02.19):
da się wymusić żeby to cholerne sortowanie po ocenie postu nie było domyślne? Straszliwie mnie wnerwia
gnysek (11:50, 13.02.19):
tzn. wcześniej też na forach się sporo działo, ale nie miałem internetu to nie widziałem
gnysek (11:49, 13.02.19):
Pamiętam, lata 2003-2008 to chyba takie najbujniejsze. Aż weszły facebooki i smartfony.
Temporal (17:18, 12.02.19):
jestem człowiekiem starej daty i żyje czasami, gdy wszystko działo się na forach internetowych
Temporal (17:17, 12.02.19):
wiem co to Discord, tak tylko głupoty wypisuje
I am Lord (17:12, 12.02.19):
discord to chat a nie portal społecznościowy
I am Lord (17:05, 12.02.19):
bo rozmowy się toczą na discordzie tylko
Temporal (16:51, 12.02.19):
boję się Discordów, Facebooków i Instagramów
SimianVirus7 (22:59, 11.02.19):
tu zwykle jest cicho z tego co wiem na discordzie więcej się dzieje
nowy_user (15:37, 11.02.19):
Wszyscy piszą gry, nik nie ma czasu na pogawędki
Temporal (15:33, 11.02.19):
co tu tak cicho?
nowy_user (17:20, 9.02.19):
Morał z tych historii: Róbcie backupy
Temporal (15:39, 9.02.19):
brzmi jak dobra copypasta
Konrad-GM (14:59, 9.02.19):
Kiedyś robiłem grę w Unity, crash co chwila, a potem ostatni crash usunął mi sporą część assetów w jakiś dziwny sposób, że nie mogłem odzyskać większości kodu czy modeli a kopia mocno była nieaktualna, usunąłem Unity i od tamtej pory nigdy nie wróciłem xD
I am Lord (13:52, 9.02.19):
miałem strzelankę topdown z generowanymi jaskiniami w planach
I am Lord (13:51, 9.02.19):
Ja nie oddałem na ligę bo mi crash GMS2 zepsuł projekt i się wkurzylem. Odinstalowałem go
Temporal (10:13, 9.02.19):
kiedy ten GM mi się znudzi? cały czas jestem pod wrażeniem jak dobry jest ten soft. Oczywiście ma jakieś swoje bolączki i są bardziej zaawansowane silniki, ale to wciąż doskonałe narzędzie zarówno dla początkujących twórców gier jak i zaawansowanych. Tworzenie gier w tym środowisku to sama przyjemność
gnysek (22:03, 8.02.19):
Nie wyjdzie. Jest plan na cały rok rozpisany i nie ma tam gms3. A zniżki były co roku.
nowy_user (18:22, 8.02.19):
Pojawiła się nowa promocja, Lunar Sale, nawet do 50% zniżki na GMS2 Mobile. Chyba niedługo wyjdzie GMS3, skoro co chwila nas zasypują promocjami
nowy_user (22:05, 5.02.19):
Dzięki, wyglada bardzo solidnie, chyba z niego skorzystam
gnysek (17:03, 5.02.19):
mydevil.net po tym jak hekko ceny podniosło
nowy_user (14:40, 5.02.19):
Hej, jaki niedrogi i dobry hosting polecacie do prostego landing Page’a, na którym mógłbym zaprezentować apkę zrobioną w GM? Najlepiej taki, który obsługuje WordPressa, bo bardzo do gustu przypadła mi wtyczka Elementor Page Builder
Sutikku (22:58, 4.02.19):
dziury w głowie
Sutikku (22:58, 4.02.19):
zapomniałem skończyć gierkę na lige .-.
SimianVirus7 (17:35, 4.02.19):
Myślę, że parę dobrych duszyczek by się znalazło i ufundowało nagrody. Jeśli pomysł się spodoba, ja również mogę dorzucić coś od siebie
SimianVirus7 (17:33, 4.02.19):
Można by zrobić jakiś worek gier (ale nie śmieciowych). Human: fall flat, Hollow Knight, Bioshock Inifite, Gothic Universe Edition. To wszystko dobre gry za małą cenę <20zł
Dester (17:13, 4.02.19):
nagrody na Steam na pewno były by bardzo motywujące
Dester (16:53, 4.02.19):
temat był za trudny
Ankieta
» Ile powinny trwać tury Ligi 24?
24h
48h
54h (piątek od 18:00)
7 dni
inna długość (podałem w komentarzu ankiety)

GMCLAN to serwis o programie Game Maker i nie tylko.
[ Polityka prywatności ]
Copyright © 2002-2019. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017-2019 {=|=} fable_inside();

[ Czas generowania strony: 0.02619 sekund ] [ Liczba zapytań MySQL: 13 ]