Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sposoby szyfrowania string w bascom, [C]

gothye 20 Kwi 2008 10:54 3078 12
  • #1 20 Kwi 2008 10:54
    gothye
    Poziom 33  

    witam

    poszukuje sposobów ,linków do szyfrowania stringów (danych przesyłanych przez rs232 miedzy dwoma uC ) w [c] łatwiej znaleść ,w bascomie niestety zadnego :(

    0 12
  • #2 20 Kwi 2008 11:14
    Balu
    Poziom 38  

    Najprościej, to chyba przez podstawienie:)
    Masz dwa słowniki i zamieniasz konkretne literki na konkretne literki i w drugą stronę (i nie koniecznie na literski tablica ascii ma 255 kodów;) )

    0
  • #3 20 Kwi 2008 11:19
    gothye
    Poziom 33  

    hmm ,tak znam ten sposób nosi nazwe szyfrowanie cezara ,troszkę za łatwę czy nie uwarzasz :?: :)

    0
  • #4 20 Kwi 2008 11:23
    Balu
    Poziom 38  

    Uważam:)
    Ale jest to najprostszy sposób:)
    I skutecznie zniechęcający :)
    Może inaczej, dużo będziesz miał tych stringów do przewalenia?

    0
  • #5 20 Kwi 2008 11:31
    gothye
    Poziom 33  

    ok 100 róznych stringów :)

    chciałbym aby strin wygenerowany przez szyfrator wyglądał mniej wiecej tak :

    Ŕ9VsýŔA™ŚýŔE�ýŔE]%ýŔE�ýŔE�ýŔE]%ýŔEpľąýŔEĺ�ýŔEŕýŔE<FýŔEX©ýŔE„óýŔIŃýŔIŃýŔA™

    wkleiłem z innego tematu

    0
  • Pomocny post
    #7 20 Kwi 2008 12:36
    Jj_Johnys
    Poziom 21  

    Witam.
    Kodu w BASCOM nie mam, ale może to ci pomoże.
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=969322&highlight=
    W jednym z moich postów na dole strony podaję link do stronki, na której bardzo fajnie i przejrzyście opisane jest, jak zastosować szyfrowanie DES. dla kogoś znającego dany język programowania będzie to roboty na jakieś trzy godzinki (łącznie ze zrozumieniem algorytmu).
    Jeśli chcesz - mogę wrzucić tutaj kod w C# do wglądu. Aktualnie dodałem do algorytmu tryb CBC, dzięki czemu dwa takie same ciągi szyfrowane są inaczej.

    0
  • #8 20 Kwi 2008 17:17
    migod
    Poziom 21  

    Polecam algorytm AES, nowszy generacyjnie od poczciwego DES-a, przykładowa implementacja w C http://www.geocities.com/malbrain/aesfast_c.html

    Jest też coś takiego jak TinyECC specjalnie do bezprzewodowych sieci, bazune na TinyOS http://discovery.csc.ncsu.edu/software/TinyECC/

    Szyfr cezara jest zbyt łatwy do przełamania, jeśli rozwiązanie ma być w miarę bezpieczne, to zupełnie nie brałbym tego pod uwagę.

    0
  • #9 20 Kwi 2008 17:35
    gothye
    Poziom 33  

    a moze posiada ktoś link do AES w bascom :?:

    pozdrawiam

    0
  • #10 20 Kwi 2008 17:56
    riddyk
    Poziom 20  

    znając jakiś język bez problemu z innego można to przerobić na ten jaki się zna.

    Druga sprawa sam nie jesteś wstanie wymyślić swojego sposobu, aby coś zaszyfrować. Wykonać parę operacji na stringu w swojej tylko znanej kolejności?

    0
  • #11 20 Kwi 2008 19:52
    mirekk36
    Poziom 42  

    Witam,

    jak zrobisz kodowanie, jakieś nawet własne tego typu, że każdy swój string kodujesz za pomocą jakiegoś wielobajtowego unikalnego klucza, gdzie kodowanie polega na cyklicznym wg tego klucza xorowaniu stringów, do tego wpleciesz jeszcze kilka własnych sztuczek,czyli np dodawanie w wybranych miejscach stringu rozbitych na różne pozycje sum kontrolnych czy jeszcze kilku gadżetów to stawiam dużą skrzynkę piwa jeśli znajdziesz kogoś, kto rozkoduje ci ten zaszyfrowany string bez wiedzy n/t twojego klucza oraz wiedzy czy i jakie sumy kontrolne i gdzie wplatasz. Takie proste systemy są czasem dużo leplsze od dużych i ciężkich algorytmów DES AES itp jak na Bascom'a czy może na małe AVRki. A co najważniejsze szybko można je samemu napisać.

    Dodano po 8 [minuty]:

    o przy okazji tak na gorąco strzeliłem przykład takiego prostego ale bardzo skutecznego kodowania (to oczywiście tylko przykład i jak mówię warto go wzbogacić o kilka szczegółów i przetestować jeszcze - ale mam nadzieję, że obrazuje dobrze temat. Jak pisałem do tego zakodowanego stringa dodajesz jeszcze jakieś sumy kontrolne własnej roboty, mozna go jeszcze raz przelecieć kodowaniem w oparciu o drugi klucz i życzę powodzenia w jego rozszyfrowaniu bez znajomości klucza(-y) czy tych sum kontrolnych)

    poniżej obrazek prostego programu:
    Sposoby szyfrowania string w bascom, [C]

    a jeszcze poniżej fragmenty super prostego kodu. Pisane to jest w Delphi więc to będzie pikuś przerobić to na potrzeby Bascoma:

    to klawisz "ZAKODUJ"

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    
    var
      i, j, kluczdl, x,y: Integer;
      c, str, str2, klucz: String;
      b : char;
    begin
      str := Edit1.Text;
      klucz := Edit2.Text;
      kluczdl := Length(klucz);
      j := 1;
      str2 := '';
      for i := 1 to Length(str) do begin
        b := str[i];
        x := ord(b);
        y := ord(klucz[j]);
        y := y - 23;
        c := Chr( x xor y );
        str2 := str2 + c;
        inc(j);
        if j > kluczdl then j := 1;

      end;

      Edit3.Text := str2;

    end;



    a to klawisz "ODKODUJ"
    Code:
    procedure TForm1.Button2Click(Sender: TObject);
    
    var
      i, j, kluczdl, x,y: Integer;
      c, str, str2, klucz: String;
      b : char;
    begin
      str := Edit3.Text;
      klucz := Edit2.Text;
      kluczdl := Length(klucz);
      j := 1;
      str2 := '';
      for i := 1 to Length(str) do begin
        b := str[i];
        x := ord(b);
        y := ord(klucz[j]);
        y := y - 23;
        c := Chr( x xor y );
        str2 := str2 + c;
        inc(j);
        if j > kluczdl then j := 1;

      end;

      Edit4.Text := str2;

    end;


    tak więc widać mniej więcej jak można do tego podejść aby było bezpiecznie i aby skutecznie odstraszyć amatorów cudzych gruszek (czyli tych którzy chcą rozkodować)

    pozdrawiam

    0
  • #12 20 Kwi 2008 21:37
    Freddy
    Poziom 43  

    Na AVRFreaks jest AVRCryptoLib za darmo. Do wyboru wiele metod. Kod jest w C, ale dla wytrawnych Bascomowców nie stanowi to chyba problemu

    0
  • #13 21 Kwi 2008 12:13
    gothye
    Poziom 33  

    sposób który podał mirekk36 jest świetny staram sie tylko go przełozyc na bascom dopiero zaczynam z delphi :(

    0
  Szukaj w 5mln produktów