• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program szyfrujacy

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,317 wizyt
pytanie zadane 31 lipca 2015 w Algorytmy przez Rogargol Pasjonat (16,610 p.)
Chciałbym napisac prosty programik szyfrujacy.

Schemat działania:

Wpisujemy tekst, wpisujemy kod, klikamy przycisk i program szyfruje nam tekst za pomoca kodu w okreslony ciag znakow.

Pozniej sytuacje mozna odwrocic i wpisujac zaszyfrowana wiadomosc i ten sam kod odszyfrowac ją.

Nigdy nie interesowalem się za bardzo kryptografią, stąd moje pytanie, jak najlepiej w miare prosty sposob dokonac takiego szyfrowana?

Myslałem o zmianie kazdgo znaku na kod ASCII a pozniej poddaniu go jakiemuś działaniu przy pomocy kodu, ale nie do konca wiem jak to ugryźć.

Jakieś pomysły? :)

8 odpowiedzi

+1 głos
odpowiedź 31 lipca 2015 przez Magicone Nałogowiec (45,100 p.)
Na początek sprawdź sobie może szyfr cezara :D
komentarz 31 lipca 2015 przez Rogargol Pasjonat (16,610 p.)
Moze za jego czasow to sie sprawdzalo :P Ale zbyt banalne ;)
komentarz 31 lipca 2015 przez katolik6 Dyskutant (8,140 p.)
edycja 31 lipca 2015 przez katolik6
za proste? to zdeszyfruj mi to: îůćÖŹťÜů׏×Ë×ôÜĹľÜő×öľĆŹÉîőć (nie, żebym nie szukał skuteczniejszej metody, od godziny o tym czytam :)
komentarz 31 lipca 2015 przez Rogargol Pasjonat (16,610 p.)
No jakos sobie nie radze, chociaz napisalem na szybko program ktory wypisal mi ten ciag 256 razy zwiekszajac za kazdym razem kazdy znak o 1. No i nie widze wsrod tych ciagow znakow, zadnego z sensem ;)
komentarz 31 lipca 2015 przez Rogargol Pasjonat (16,610 p.)
Chociaz moze to byc kwestia kodowania, bo wrzucajac podany przez Ciebie ciag do zmiennej i wypisujac na ekran wyskakuja mi inne znaki niz wpisane...
komentarz 31 lipca 2015 przez katolik6 Dyskutant (8,140 p.)
:) mi działa, a rozwiązanie to... negacja bitowa każdego znaku
komentarz 31 lipca 2015 przez katolik6 Dyskutant (8,140 p.)
zaraz zaraz, TFU! to przecież nie jest szyfr Cezara! sorry, zapomniałem, jak on działa, tu dla każdego znaku jest przypisany inny, a w Cezarze zwiększa się pozycję w alfabecie o daną ilość
komentarz 31 lipca 2015 przez Rogargol Pasjonat (16,610 p.)
Dokladnie, Cezara bym rozgryzl swoim sposobem :P
0 głosów
odpowiedź 31 lipca 2015 przez pewolt Mądrala (5,790 p.)

robilem kiedys cos takiego

int klucz; // do tej zmiennej dajesz klucz
srand(klucz);
int dl; // do tej zmiennej podasz dlugosc tekstu
char znak;
char *daneds = new char[dl]; // do tego chara dajesz tekst
for(int z = 0;z<dl;z++)
{
znak = rand()%255;
if((daned[z] + znak)>255)
{
daned[z] = daned[z] - znak;// jesli chcesz odszyfrowac dane to dajesz tu + zamiast -
}
else
{
daned[z] = daned[z] + znak;// jesli chcesz odszyfrowac dane to dajesz tu - zamiast +
}
}
// po tej petli mozesz odczytac dane z daneds

 

komentarz 2 sierpnia 2015 przez pewolt Mądrala (5,790 p.)

srand ustawia czas dla programu a rand losuje liczby z zakresu 0-255 na podstawie czasu

np. czas: 100 i szesc wysloowanych liczb: 1, 57, 255, 0, 83, 34 albo czas: 568 i szesc wysloowanych liczb: 56, 234, 20, 8, 99, 10

w uproszczeniu wyobraz sobe ze masz zmienna czas i ta zmienna zmienia sie co 1\1000 sekundy. Ten czas (czas startowy) mozesz sobe ustalic za pomoca srand. A teraz zeby wylosowac jakas liczbe uzywasz rand. Zas rand wykonuje jakies dzialania matematyczne np (czas*3 - 345 + czas - 1000) / zakres do + zakres od = liczba losowa (ten wzor w nawiasach moze byc inny, on jest tylko po to by liczny losowe wygladaly realistyczniej)

teraz przyklad: (3000*3-345+3000-1000) / 255 + 0 = ~42

1 sekund po pierwszym losowaniu: (4000*3-345+4000-1000) / 255 + 0 = ~57

pamietaj to tylko przyklad wyjasniajacy dzialanie losowania naprawde to wzor moze byc inny, ja orginalnego wzoru nie znam i tylko podalem przyklad takiego

mam nadzeje ze rozumiesz i ze pomoglem

komentarz 2 sierpnia 2015 przez Rogargol Pasjonat (16,610 p.)
Ok teraz juz wiem co i jak, nie zorientowalem sie, ze w momencie jak wrzucimy w srand klucz, to wartosc wylosowanych liczb bedzie za kazdym razem taka sama dla tego samego klucza - stad nie moglem zrozumiec jak calosc ma zadzialac w momencie odszyfrowywania. Dzieki za wyjasnienia! :)
komentarz 2 sierpnia 2015 przez pewolt Mądrala (5,790 p.)

schemat dzialania mojego szyfru:

  • klucz: 1234
  • wartosci do zaszyfrowania: 1, 3, 6
  • wylosowane wartosci z klucza: 2, 5, 3
  • szyfrowanie: 1+2=3, 3+5=8, 6+3=9
  • zaszyfrowane dane: 3, 8, 9
  • deszyfracja:
  • klucz: 1234
  • wartosci do odszyfrowania: 3, 8, 9
  • wylosowane wartosci z klucza: 2, 5, 3
  • odszyfrowanie: 3-2=1, 8-5=3, 9-3=6
  • odszyfrowane dane: 1, 3, 6 

rozumiesz?

jak masz jeszcze jakies pytania a boisz sie zapytac albo nie rozumiesz czegos to pytaj smialo 

komentarz 2 sierpnia 2015 przez Rogargol Pasjonat (16,610 p.)
Dzieki, ale juz w poprzednim poscie chodzilo mi o to, ze zrozumialem zasade dzialania, od poczatku nie rozumialem jedynie tego, ze uzywajac klucza jako argumentu funkcji srand dwa bedziemy losowac te same wartosci :)
komentarz 2 sierpnia 2015 przez pewolt Mądrala (5,790 p.)
beda takie name wastosci bo klucz bedze taki sam a raczej czas
0 głosów
odpowiedź 5 października 2015 przez ZakosiliMiNeta Nałogowiec (30,870 p.)
Jak chcerz się bawić w takie rzeczy to zacznij od szyfru cezara ( może nie skuteczne ale w miare proste )
komentarz 6 października 2015 przez Rogargol Pasjonat (16,610 p.)
Kolego, dzieki za odpowiedz, ale wypadaloby przeczytac chociaz pierwsza odpowiedz od gory. O szyfrze cezara byla juz mowa.
0 głosów
odpowiedź 6 października 2015 przez Avernis Nałogowiec (27,400 p.)
Może srobisz że każdej literce odpowiada numerek(Tylko nie kopiuj od ASCI), i innym znakom też, np spacja to 142
0 głosów
odpowiedź 6 października 2015 przez draghan VIP (106,230 p.)
Poczytaj sobie o szyfrowaniu ADFGVX. :) Dość ciężki do amatorskiego złamania, ale powoduje nadmiarowo ilościowy szyfrogram - algorytm wymaga dwóch znaków do zakodowania jednego.
0 głosów
odpowiedź 6 października 2015 przez Dragonet.17 Pasjonat (19,630 p.)
Twój pomysł jest całkiem dobry, musiszpo prostu rzutować string na char.
Jest to proste, ponieważ string sam w sobie jest tablicą , więc w przystępny sposób jesteś wstanie zakodować każdą literę.natomiast później możesz dorzucić jakieś skomplikowane działanie :D
0 głosów
odpowiedź 6 października 2015 przez Ehlert Ekspert (214,940 p.)

Poczytaj o soleniu i bramce XOR. smiley

0 głosów
odpowiedź 6 października 2015 przez Rogargol Pasjonat (16,610 p.)
Dziekuje Panowie za odpowiedzi, ale kolega ZakosiliMiNeta odgrzebal temat sprzed ponad miesiaca (piszac zreszta identyczna odpowiedz jak pierwsza od gory), a temat juz jest nieaktualny :) Pozdrowionka
komentarz 12 października 2015 przez draghan VIP (106,230 p.)

*mina super-(nie)ogarniętego-człowieka*
Hej, rzeczywiście. ;D A tak z ciekawości: jakiej techniki szyfrowania wtedy użyłeś? :)

komentarz 12 października 2015 przez Rogargol Pasjonat (16,610 p.)
Tej polularnej z dodawaniem do znaku wartosci losowych generowanych na podstawie klucza, pewolt mi to podpowiedzial, mozesz zobaczyc jego odpowiedz wyzej.

Podobne pytania

0 głosów
1 odpowiedź 628 wizyt
pytanie zadane 11 grudnia 2022 w C i C++ przez polandonion Dyskutant (7,630 p.)
+1 głos
0 odpowiedzi 411 wizyt
pytanie zadane 9 października 2021 w Systemy operacyjne, programy przez Ser-Ver Użytkownik (820 p.)
0 głosów
1 odpowiedź 741 wizyt
pytanie zadane 7 września 2019 w C# przez Magikarp Początkujący (260 p.)

93,335 zapytań

142,330 odpowiedzi

322,411 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...