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
7 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 6, userów: 1, ukrytych: 0
Adriann
Użytkownicy na czacie discord
Shoutbox
gnysek (12:03, 18.01.18):
Akurat Nintendo nie zawodzi nigdy w takich sprawach.
I am Lord (11:37, 18.01.18):
i pewnie 90% nie działa bo to efekt montażu
Uzjel (0:57, 18.01.18):
Switch jest genialny, a to wygląda zajebiście
Chell (0:26, 18.01.18):
damn, jednak nintendo to nintendo
PsichiX (21:02, 17.01.18):
no i w tym roku nie bedzie nagrody za przyklad roku
MaxGaming (20:33, 16.01.18):
JUŻ MAM XD
MaxGaming (20:29, 16.01.18):
robię jakiś podstawowy błąd bo to jest banalna strona ale ja nigdy nie rozumiałem cssa, uczę się go bardziej na pamięć bo gdybym ja robił cssa wiele rzeczy zrobiłym zupełnie inaczej bo skupisko absurdów obecnie
MaxGaming (20:28, 16.01.18):
Ten mój css jest jakiś bardziej wadliwy niż myślałem. Jest ktoś chętny żebym mu wysłał na pw protą stronkę i mi powiedział co robię źle?
Chell (13:51, 15.01.18):
konkurentów masz dwóch
Wojo (11:50, 15.01.18):
Nie daję żadnego kurde
gnysek (10:43, 15.01.18):
Kurde, w temacie na przykład roku nie mogę głosować, bo albo na siebie albo na jedynego konkurenta...
gnysek (10:43, 15.01.18):
Ja nie widzę czegoś takiego, aleeeeee może masz niekompletny profil usera
Chell (22:46, 14.01.18):
oczywiście to był żart, nic nie ustawiałem, zachęcam do głosowania
Chell (21:22, 14.01.18):
oddałem swoje głosy i ustawiłem przekierowanie, w tym roku to ja rozdaje karty
Ignatus (21:18, 14.01.18):
Ciekawe Nie można wejść na żaden z tematów [głosowanie] bo ładuje się zawsze strona o treści "Następny krok: Optional Profile Information" i nic więcej...
ANtY (13:59, 14.01.18):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargh
Uzjel (19:23, 13.01.18):
To MaxGaming, fake konto Paqa.
Uzjel (15:51, 13.01.18):
Moduł Androida za darmo do testów do końca miesiąca (GMS2)
Wojo (12:21, 13.01.18):
Odszedłeś bezpowrotnie z twoją muzyką.
Wojo (12:20, 13.01.18):
lil peep czemu to zrobiłeś ja pierole
Chell (8:21, 13.01.18):
no dobra, nie przemyślałem tego
gnysek (8:49, 12.01.18):
Ale to jest własnie własciwość focusu, ze jest na jednym elemencie. Inaczej to juz nie focus
ANtY (22:02, 11.01.18):
Fullscreen Windowed
Chell (20:08, 11.01.18):
w sensie zebym mial sobie gierke na full screenie na glownym, powiedzmy walkthrough na drugim i zebym mogl sie przelaczac miedzy tymi dwoma tak, zeby gra nie gubila focusu
Chell (20:08, 11.01.18):
jest jakis soft pozwalajacy na osobny focus na kazdym monitorze?
I am Lord (19:26, 11.01.18):
Sahara w krakowie?
Uzjel (21:11, 10.01.18):
Ahhh... Obejrzałem właśnie walki robotów. Fajnie było
gnysek (10:53, 10.01.18):
problemy z monetyzacją - wszyscy wrzucali darmowe rzeczy, a nikt nie płacił za miejsce - woleli cwaniakować i kilka kont zakładać.
I am Lord (21:56, 9.01.18):
A co się stało z tymi serwisami?
Morro (14:28, 9.01.18):
nie polecam nikomu ;d
Morro (14:28, 9.01.18):
wjeżdzą na banię, dopiero dzisiaj od piątku przespałem koło 8 godzin ciągiem
gnysek (7:51, 8.01.18):
chociaz pb to chyba tylko żąda kasy i zdjęć nie skasował, ale imageshack chyba po prostu wywalił serwery przez okno
gnysek (7:50, 8.01.18):
wrzuta, fotka, wiele serwisów. Najgorsze że imageshack i photobucket też, sporo contentu w sieci straciło treść bezpowrotnie.
Korodzik (1:02, 8.01.18):
huh, ja wrzutę pamiętam głównie jako magazyn pirackich muzyczek, bodajże w czasach zanim na youtube można było znaleźć dowolny utwór świata
Chell (20:38, 7.01.18):
wlasnie zauwazylem ze wrzuta.pl zniknela, a wraz z nia masa dobrej polskiej muzyki :/
I am vader (20:29, 7.01.18):
Informatycznie led.feen.us/fp8ox1id.png
Chell (18:15, 7.01.18):
w ogóle tak mi się teraz przypomniało jak byłem małym 4tk i na gmclanie funkcjonowały acziki. jeden z nich był za "wypicie pół litra sam na sam z shoutboxem", i jak wiedziałem co to pół litra, tak nie miałem pojęcia jak można je wypić z shoutboxem. dobre, beztroskie czasy
Nikas (14:55, 7.01.18):
Też raz w gimbazie widziałem. Byłem z rodzicami nad jeziorem i jakieś młode łebki się najebały i ukradły rowerek wodny w nocy. Jeden typ jakoś wypadł do wody i się nie wynurzył. Nurkowie go wyciągnęli jakieś 2 dni później. Mało przyjemny widok to był.
I am vader (14:43, 7.01.18):
Czy tylko ja trupa tutaj nie widzialem?
ANtY (14:03, 7.01.18):
nie wiem czy to taki lol
Wojo (9:40, 7.01.18):
lol xD
Chell (23:39, 6.01.18):
i no pilem do tego ze tez wtedy pol nocy nie spalem bo mi zle z tym bylo strasznie
Chell (23:39, 6.01.18):
pierwszy podbieglem, ale troche mnie zamurowalo jak zobaczylem pusty wzrok i struzke z glowy, tak se stalem i myslalem czy wskakiwac po niego czy nie, bo mam nowe buty, dopiero po jakichs 5 sekundach kumpel mnie zawolal
Chell (23:37, 6.01.18):
kiedys ok. polnocy przechodzilem obok fontanny wolnosci w Poznaniu (9 metrow wysokosci), koles spadl ze szczytu, w polowie zahaczyl o metalowy stelaz fontanny, obrocil sie glowa w dol, wyjebal w deski i zsunal sie do wody
Chell (23:35, 6.01.18):
also Morro przykro mi, takie rzeczy dziwnie wjezdzaja na banie
Chell (23:13, 6.01.18):
caly dzien wisi temat z nominacjami i nikt sie nie zainteresowal, juz nawet nie ma co umierac na tym forum
Wojo (19:55, 6.01.18):
tyle nocyy
Uzjel (16:45, 6.01.18):
Dzięki @ANtY Powinno być już ok
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.
Copyright © 2002-2018. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017 {=|=} fable_inside();

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