Makary155 Opublikowano 26 Lutego 2010 Udostępnij Opublikowano 26 Lutego 2010 Witam. Wymyśliłem sobie metodę szyfrowania tekstu, a brzmi ona tak: "Suma kodów ASCII dwóch kolejnych liter daje kod poprawnej litery" No i mam skrypty: szyfruj GML _tekst=argument0 _wynik="" _znak="" _temp=0 ilosc=string_length(_tekst) _tekst=string_upper(_tekst) for (i=1; i<ilosc; i=i+1) { _znak=string_char_at(_tekst, i) _temp=irandom_range(65,90) _wynik=_wynik+chr(ord(_temp))+chr(ord(_znak)-_temp) } return _wynik odszyfruj: GML _tekst=argument0 ilosc=string_length(_tekst) for (i=1; i<ilosc; i=i+2) { znak=string_char_at(_tekst, i) znak2=string_char_at(_tekst, i+1) _wynik=_wynik+chr(ord(znak)+ord(znak2)) } return _wynik i owszem działa, ale wyskakują też dziwne znaki, a chciałbym aby w wyniku był tekst zaszyfrowany tylko za pomocą liter. Co należy poprawić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 26 Lutego 2010 Udostępnij Opublikowano 26 Lutego 2010 GML _wynik=_wynik+chr(ord(_temp))+chr(ord(_znak)-_temp) ord zwraca kod ASCII podanego jako argument znaku. Ty jako argument wysyłasz liczbę (sądząc po przedziela chcesz wysłać kod ascii litery). Ja pytam jaki to ma sens? Dalej zamieniasz to z powrotem na znak i dodajesz do wyniku. Po co jest ten pierwszy ord? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 26 Lutego 2010 Autor Udostępnij Opublikowano 26 Lutego 2010 Akurat to zauważyłem sam. Ale nie w tym rzecz. Chcę tak to zmodyfikować zwracało wynik w postaci liter a nie całej tabeli Unicode. I nie chodzi tu o string_letters :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 26 Lutego 2010 Udostępnij Opublikowano 26 Lutego 2010 Domyślam się o co chodzi. Po prostu postaw jednego czy 2 dodatkowe ify czy while by jak zejdzie poniżej 65 niech znów idzie od 90. Co i tak nie zmieni faktu, że sam algorytm szyfrowania jest głupi. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 26 Lutego 2010 Udostępnij Opublikowano 26 Lutego 2010 Dodając litery "a" i "Z" wyjdzie kod 187 (97+90). Jak masz zamiar z tej liczby 187 wyciągnąć liczby 97 i 90? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 26 Lutego 2010 Udostępnij Opublikowano 26 Lutego 2010 Dodając litery "a" i "Z" wyjdzie kod 187 (97+90). Jak masz zamiar z tej liczby 187 wyciągnąć liczby 97 i 90? Nie rozumiesz. On sobie losuje jakaś literę. W zaszyfrowanym tekście każdej literze odpowiadają 2 litery. Jedna to ta wylosowana a druga to ich różnica. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 26 Lutego 2010 Autor Udostępnij Opublikowano 26 Lutego 2010 Może i głupi, ale skuteczny, hasła do gg są szyfrowane w podobny sposób. Edit Problem rozwiązany. Wystarczyło losować liczbę od 0 do 32 i dodać do niej 65, a przy deszyfrowaniu odjąć. Teraz w wyniku są znaki które można normalnie z klawiatury wpisać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę