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)
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
3 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 2, userów: 1, ukrytych: 0
I am Lord
Użytkownicy na czacie discord
Uzjel (22:42, 25.05.18):
Max, spróbuj piktochart
PsichiX (20:46, 25.05.18):
ale ja mowie serio. Ty chcesz infografike, ja mowie Ci moja cene za to.
Wojo (19:51, 25.05.18):
penguin robisz świetne pixelki
MaxGaming (19:11, 25.05.18):
Psichix nie próbuj być na siłę śmieszny bo Ci to nie wychodzi...
Danielus (19:11, 25.05.18):
RODO z GMC trafia do spamu w gmailu :d
PsichiX (18:44, 25.05.18):
50zl za 1024 piksle kwadratowe
MaxGaming (16:31, 25.05.18):
Jest ktoś kto mógłby mi machnąć infografikę?
gnysek (11:54, 25.05.18):
Toż bym z tych 20zł miesięcznie nie wypłacił sobie ZUSu za GMCLAN
gnysek (11:53, 25.05.18):
No moja firma działa jeszcze gdzieś indziej Poza tym, regulamin jest wspólny dla wszystkich stron, kosztowało mnie to dopisać "gmclan.org" do listy
Wojo (11:40, 25.05.18):
ale gmclan moze miec kare w granicach 6zł chyba ze gdzies indziej jeszcze dzialacie
gnysek (23:03, 24.05.18):
Kara jest od obrotów firmy, nie strony
Wojo (18:46, 24.05.18):
nie ma potrzeby tego robic imo, jakbys dostal mandat to przychód z gmclanu napewno go pokryje xD
gnysek (15:34, 24.05.18):
Niestety, pewnie wieczorem dodam popup o ciastkach również
gnysek (15:26, 24.05.18):
Jesteśmy gotowi na RODO, dodałem Politykę Prywatności
Ignatus (23:06, 20.05.18):
To bedzie w zasadach opcjonalnych- no i tylko jezeli przejdzie solidne testy, bo teraz dziala to wszystko idealnie wiec nie ma co kombinowac
I am Lord (22:58, 20.05.18):
Nie przekombinuj, chyba że chcesz zostawić to jako opcję dla zaawansowanych
Ignatus (22:49, 20.05.18):
wiec wrzucilem jako cel przyszly
Ignatus (22:49, 20.05.18):
ale to jeszcze nie przetestowane wiec do bazowej gry nie dodalem
Ignatus (22:49, 20.05.18):
to by dzialalo tak ze jezeli gracz ulozy karty o wartosci 1,2,3 (i w tej kolejnosci) dobiera 1 z 3 kart specjalnych
Ignatus (22:48, 20.05.18):
Jeszcze planuje przy przekroczeniu celu kampanii 10k dorzucic kilka kart i umiejetnosci
Ignatus (22:48, 20.05.18):
Pewnie że tak
I am Lord (22:42, 20.05.18):
żeby było więcej kart
I am Lord (22:41, 20.05.18):
kupując np 2 zestawy gry
I am Lord (22:41, 20.05.18):
zmodyfikować zasady*
I am Lord (22:40, 20.05.18):
zawsze można będzie zmodyfikować sobie jak się chce mieć losową rękę
Ignatus (22:33, 20.05.18):
Niektórzy na Pyrkonie dosłownie po 5 minut myśleli nad ruchem
Ignatus (22:32, 20.05.18):
Zerowa losowośc- gracze mają do dyspozycji symetryczne talie 7 kart od początku do dyspozycji.Jest takie ciężkie kombinowanie że aż sam jestem w szoku
I am Lord (22:28, 20.05.18):
Teraz przeczytałem opis gry Humor taki jak u Pratchetta
I am Lord (22:13, 20.05.18):
A powiedz mi jak dużą rolę gra szczęście? Kółko i krzyżyk był grą o zerowym szczęsciu, nie da się go wygrać gdy staną przeciwko sobie przeciwnicy na tym samym poziomie. U ciebie elementem losowym jest talia kart tak? Czy rozdanie mocno wpływa na przebieg gry?
I am Lord (22:11, 20.05.18):
Przez ciebie mam chęć zrobienia takiej gierki samemu
Uzjel (22:00, 20.05.18):
Od razu z góry mogę zaproponować port na iOS'a, bo właśnie się uzbroiłem w CAŁY sprzęt Powodzenia!
Ignatus (21:54, 20.05.18):
A jezeli sie powiedzie to oczywiscie bede to przekuwał w multi na andka w przyszłości
Ignatus (21:53, 20.05.18):
Ujzel:wydawcą jest póki co wspieram.to ;p Ale juz rozmawiam z jednym sklepem większym który mnie wychaczyl na Pyrkonie
Ignatus (21:51, 20.05.18):
Jak się skonczy kampania to beda chodzic w sklepie po 30-35 wiec na pewno jakis zysk bedzie
Ignatus (21:50, 20.05.18):
Bardzo dziękuje!!!!!!!!
Uzjel (21:50, 20.05.18):
O! Albo sprzedam z zyskiem!
Uzjel (21:50, 20.05.18):
Na początku czerwca mam ostatnie zajęcia, więc pewnie się nie uda Rozdam planszówkowym kolegom.
I am Lord (21:49, 20.05.18):
Może ich też to natchnie
I am Lord (21:49, 20.05.18):
To rozdaj maluchom ze szkoły
I am Lord (21:41, 20.05.18):
a nie bo przesyłka będzie kłopotliwa :d
I am Lord (21:41, 20.05.18):
Na gmclan do konkursu
Uzjel (21:34, 20.05.18):
Też dorzucę, ale nie wiem co zrobię z dodatkowymi sztukami :p
I am Lord (21:30, 20.05.18):
Wow ignatus zasady wyglądają na faktycznie grywalne, nie mam i tak z kim w to zagrać chyba że zrobisz kiedyś giereczkę na PC czy androida ale dorzucę grosza
Uzjel (21:25, 20.05.18):
Fajnie Ignatus, kto będzie wydawcą?
Ignatus (19:46, 20.05.18):
Panowie zachęcam do wspierania mojej kampanii gry karcianej.Po prawie 100 partiach na Pyrkonie nieskromnie stwierdzam ze jest zajebsicie grywalna. wspieram.to/czarowieze
Wojzax (19:27, 20.05.18):
No mi najwięcej oryginalnych pomysłów wpada gdzieś w plenerze. Nie że związanych z tym plenerem po prostu tak wyjście mi czasem działa na mózg.
Wojo (19:15, 20.05.18):
za pieniądze z genialnego pomysłu możesz spłacić kredyt za który się wyprowadziłeś
Wojo (19:14, 20.05.18):
wniosek jest taki, że trzeba wyprowadzić się do ciepłych krajów
Sutikku (14:52, 20.05.18):
zawsze jak jest ciepło to tyle pomysłów do tworzenia, a jak jest zima siedzi się w domu, tyle czasu i nic
I am vader (10:33, 19.05.18):
Bry :v
Ankieta
» Jakie kursy najchętniej widziałbyś na stronie ?
GM Studio
GM Studio 2
Godot
Construct

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

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