Skocz do zawartości

Metoda szyfrowania


Rekomendowane odpowiedzi

Odrabiając wczoraj pracę domową z matmy wpadłem na pomysł napisania szyfrowania przy pomocy funkcji random().

Oto efekt.

Szyfrowanie:

GML
var wy,k;

wy = ''

k = random_get_seed()

random_set_seed(argument1)

for(i = 1; i <= string_length(argument0); i += 1)

{

wy += chr(ord(string_char_at(argument0,i))+round(random(256)))

}

random_set_seed(k)

return wy

I deszyfrowanie:

GML
var wy,k;

wy = ''

k = random_get_seed()

random_set_seed(argument1)

for(i = 1; i <= string_length(argument0); i += 1)

{

wy += chr(ord(string_char_at(argument0,i))-round(random(256)))

}

random_set_seed(k)

return wy

Argument 0 - to tekst szyfrowany/deszyfrowany.

Argument 1 - klucz.

Kody różnią się tylko jednym znakiem - w jednym jest plus, a w drugim - minus, więc nie ma problemu zrobić z tego jedną funkcję.

Oceniajcie, bo nie wiem, co o tym myśleć. Wydaje się szybkie i dobre.

Odnośnik do komentarza
Udostępnij na innych stronach

@Roki:

1. Po co jest opis funkcji, skoro napisałem, co do szyfrowania, a co do deszyfrowania? Pierwszy argument jest tekstem do de/szyfrowania, a drugi argument - to klucz, którego używa się do de/szyfrowania. Np. tekst a = szyfr('ala ma kota',54367) można deszyfrować jedynie tak: a = deszyfr(a,54367). Nie muszę objaśniać mechanizmu szyfrowania, bo sam w sobie jest banalny, a jeśli mimo to potrzebujesz pomocy w zrozumieniu metody szyfrowania, no to szkoda.

2. Szyfrowanie XOR-em odpada, bo deszyfruje się tak samo, jak szyfruje. Mój szyfr jest tak skonstruowany, że tylko klucz do szyfrowania pasuje jako klucz do deszyfrowania danego tekstu.

Odnośnik do komentarza
Udostępnij na innych stronach

Ten co dawałem linka na shoutbox też.

jeśli mimo to potrzebujesz pomocy w zrozumieniu metody szyfrowania, no to szkoda.

Napisałem że ja? W GM siedzę dłużej niż ty, wierz mi, znam się na tym trochę :) Ale skoro dodajesz przykład, to warto go wyjaśnić, prawda?

Odnośnik do komentarza
Udostępnij na innych stronach

Aha, ja myślałem o innym szyfrze z XOR.

 

Ale skoro dodajesz przykład

przykład

Pfff.

Skrypty, przykłady, dodatki, silniki 3D dla GM

Skrypty

To nie jest przykład. To po prostu jest skrypt do szyfrowania tekstu, np. gdy chcesz zapisać coś do pliku.

I skąd ta pewność, że siedzisz dłużej w GM-ie? :P

Odnośnik do komentarza
Udostępnij na innych stronach

Tutaj nie ma co do opisywania. Jeśli wiesz, co to jest ASCII i funkcje z random, to nie potrzebujesz opisu. W przeciwnym wypadku - do ASCII trzeba samemu dojść, nie ma tak, że jak napiszę, że 'A' to 65, a 'a' to 97, to magicznie wszyscy zrozumieją ten skrypt.

Dobra, jak chcesz jeszcze coś napisać, to pisz na GG (28130638), a nie śmiećmy w temacie.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...