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
Kategorie bazy artykułów
Artykuły -> Game Maker -> Kursy GML
Treść artykułu
Szyfrowanie danych
autor: gnysek (11.06.05)
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 (17: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 (17:41, 11.06.2005)

Super Ale i tak ja bym zrobił to inaczej

av

bigshark (19: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 (7: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 (8: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 (8: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 (11: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 (11:30, 12.06.2005)

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

av

Firemark (17:50, 12.06.2005)

lol
dobre to,przyda sie w pewnej mojej grze

av

Bartek (Kamrat) (14:05, 25.06.2005)

Fajniutka sprawa

~anomymous (14:28, 11.01.2006)

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

av

Marmot (6:06, 12.01.2006)

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

av

kubasz (15: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 (23:00, 4.01.2008)

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

av

adam014 (11: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
0 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 0, userów: 0, ukrytych: 0


8 użytkownik(ów) na gmczacie discord.com
Shoutbox
Uzjel (21:15, 22.08.17):
Oj tak. I może jeszcze język na jakąś cyrylicę!
gnysek (17:47, 22.08.17):
muszę chyba na moskwę ustawić czas
gnysek (17:47, 22.08.17):
tak, ale to na całej stronie się ta psuje chyba
Chell (15:42, 22.08.17):
to proste, wystarczy przesunac 2 godziny do przodu
Chell (15:42, 22.08.17):
17:42
gnysek (15:04, 22.08.17):
kurde, coś źle z tymi strefami czasowymi jest faktycznie, ale nie mogę trafić co
exp (9:40, 22.08.17):
co tu sie porobiło wgl
gnysek (7:36, 22.08.17):
@asdfMaciej - od 15 lat forum i główna miały dwie osobne skórki...
Wojo (6:58, 22.08.17):
Dolicz sobie to ze jako programista nie przeznaczasz calego czasu na klepanie kodu tylko robisz sobie co jakiś czas przerwę, podczas gdy w fabrykach na przerwy odbijasz się kartą
Wojo (6:57, 22.08.17):
No ja np teraz siedze w robocie przed kompem a na magazynie bardziej się meczylem
asdfMaciej (0:54, 22.08.17):
Shoutbox w UTC, mógłby być w lokalnym
asdfMaciej (0:53, 22.08.17):
Ale to teraz dziwnie wygląda że forum i strona główna dwie osobne skórki
Chell (22:26, 21.08.17):
dosc powiedziec ze w tym roku wrocilem do magazynowania
Chell (22:26, 21.08.17):
kodu moze i nie klepalem, ale siedzialem przed kompem na sluchawce
Sutikku (22:09, 21.08.17):
od miesiąca chodze codziennie po 10h do fizycznej pracy, czy 10h przed komputerem klepania kodu jest jeszcze bardziej męczące? Bo jak tak to chyba się zastanowie nad swoją przyszłością
gnysek (20:21, 21.08.17):
bez sensu - teraz masz shoutbox, status, discorda, forum i jeszcze kluby - nie da się "wszystkiego" eksponować.
Wojo (18:14, 21.08.17):
Spoko, że słuchacie nareszcie userów.Mam nadzieje że to tylko rozwiązanie chwilowe bo te mikroblogi powinny być bardziej eksponowane imo
gnysek (5:57, 21.08.17):
aaaa, chodziło o mikroblog
Uzjel (19:35, 20.08.17):
Hej, statusy na razie dodałem do sekcji Aktywność forum.gmclan.or...x.php?/discover
I am Lord (15:34, 20.08.17):
Chyba że będzie to na stronie głównej zintegorowane to by było nawet lepiej
I am Lord (15:33, 20.08.17):
No mi też się to podobało
Wojo (15:14, 20.08.17):
Gmclan ma możliwość dodawania tweetów bezpośrednio na forum. Tylko, że teraz nie widać ostatnich wpisów na stronie forum, a szkoda bo to była bardzo ciekawa funkcja
Uzjel (20:54, 19.08.17):
To Twitter nie ma GMClanu!
gnysek (17:19, 19.08.17):
gmclan nie ma twittera
Threef (13:53, 19.08.17):
Nie, ty było okropne
Wojo (13:36, 19.08.17):
Oddajcie po prawej gmclanowe tweety
Chell (13:14, 19.08.17):
a symulator familiady kazdy bedzie miec w autostarcie
Korodzik (11:44, 19.08.17):
Za 5 lat obciachem w środowisku gamedevu będzie nie mieć konta na gmclanie, a jeśli ktoś nie będzie umiał wymienić z pamięci wszystkich dzieł dyzmka i rozpoznać powiedzonek bigsharka, nikt się nie będzie z nim liczył.
Korodzik (11:41, 19.08.17):
O, tak. To początek wielkiego revivalu GMClanu. Wchodzimy w nową złotą erę.
Pootkov (21:01, 18.08.17):
Czyli mam rozumieć, że akurat wchodzę w wielkie zmiany i 15 lat GMClanu?
gnysek (6:14, 18.08.17):
Stary stary? Nie. Ten sprzed 2-3 dni? tak, w stopce forum
Pootkov (21:57, 17.08.17):
wygląd forum
Pootkov (21:56, 17.08.17):
Da się jakoś zmienić wygląd na stary? Ten nowy razi w oczy
I am Lord (21:52, 17.08.17):
Ale nie działa system ligi więc będzie to w temacie tylko
I am Lord (21:52, 17.08.17):
Właściwie ligę moge zrobić
Pootkov (21:31, 17.08.17):
dawno tutaj nie byłem. Jak się tu wysyła PW, czy są jeszcze Ligi Weekendowe?
I am Lord (16:41, 17.08.17):
Powiadomienia powinny być jakoś zintegrowane ze stroną główną
Penguin (8:59, 17.08.17):
emot_poo.gif
I am Lord (19:22, 16.08.17):
Chell (16:19, 16.08.17):
Patryk, w shoutboxie jest inny zestaw emotek niz na forum
Chell (16:19, 16.08.17):
no nie, a juz sie nastawilem na okragly avatar
PatrykPlayingPOLSKA (15:17, 16.08.17):
:gnysek:
gnysek (14:25, 16.08.17):
emotki wróciły. No, sukces
gnysek (14:00, 16.08.17):
naprawiłem kodowanie forum kurde, a sie bawiłem już w wyświetlanie hexów
I am Lord (13:03, 15.08.17):
można w nim zrobić taki model i potem wyexportować warstwy spritów
I am Lord (13:03, 15.08.17):
Dobre do tej techniki są takie programy do trójwymiarowego pixel artu, zrobione ma potrzeby minecrafta
I am Lord (13:02, 15.08.17):
nakładanych na siebie ale przesuniętych w osi Y każda nowa warstwa
I am Lord (13:02, 15.08.17):
Takie udawane 3D modele składające się z warstw spritów
I am Lord (13:02, 15.08.17):
O kiedyś coś takiego robiłem
Ignatus (12:08, 15.08.17):
Jak sobie pomyśle że to jest zrobione w GM www.youtube.com...h?v=_BztMPC5Kk4 i porównam ze swoimi możliwościami to chce się płakać
Ankieta
» Jakiej wersji GameMakera głównie Używasz?
GameMaker: Studio 2
GameMaker: Studio
GameMaker 8.1 i starsze
Żadnej

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

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