Avatar billede mad_man Nybegynder
07. januar 2004 - 20:30 Der er 9 kommentarer og
1 løsning

simpel kryptering

jeg har kikket lidt rundt her inde på exp.dk og hvad jeg kunne se så er jeg blevet kraftigt inspireret til lidt kode jeg har skrevet som jeg ik helt forstår hvorfor det gør som det gør.

først koden:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int i;
    char Plaintext[] = "";              //variabel til teksten
    char Key[] = "AAAAAAAAAAAAAAAAAAA";
    strcat(Plaintext,Edit1->Text.c_str());          //få variabelen fra tekstboxen
    int l = strlen(Plaintext);
    char *Resultat;
    Resultat = (char *)malloc(l);
    for(i=0;i<l;i++)
        {
                Resultat[i] = Plaintext[i] ^ Key[i];
        }
    Resultat[l] = '\0';
    Edit2->Text = Resultat;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    int i;
    char Plaintext[] = "";              //variabel til teksten
    char Key[] = "AAAAAAAAAAAAAAAAAAA";
    strcat(Plaintext,Edit2->Text.c_str());          //få variabelen fra tekstboxen
    int l = strlen(Plaintext);
    char *Resultat;
    Resultat = (char *)malloc(l);
    for(i=0;i<l;i++)
        {
                Resultat[i] = Key[i] ^ Plaintext[i];
        }
    Resultat[l] = '\0';
    Edit3->Text = Resultat;
}

så kommer problemet...

Edit1 : q
Edit2 : 0
Edit3 : q
----------virker fint MEN

Edit1 : TestHest
Edit2 : @AAA$25
Edit3 : T@AAAest

og

Edit1 : sjover
Edit2 : 2@AAA3
Edit3 : s@AAAr

hvorfor bliver de 4 efter den første til @AAA lige meget hvad jeg skriver..
jeg bruger c++builder 6
/madman
p.s. jeg forstår ik hvad jeg gør galt..
Avatar billede mad_man Nybegynder
07. januar 2004 - 20:31 #1
og den vil heller ikke kryptere noget over 8 karektere :?
Avatar billede mad_man Nybegynder
07. januar 2004 - 20:40 #2
nåå ja og fordi jeg har *host* lånt lidt kode så har jeg ingen ide hvad malloc gør andet det er noget med noget hukommelse... er det helt fokert..
Avatar billede arne_v Ekspert
07. januar 2004 - 20:42 #3
C malloc svarer til C++ new og allokerer et antal bytes
Avatar billede arne_v Ekspert
07. januar 2004 - 20:43 #4
char Plaintext[] = "";              //variabel til teksten
    strcat(Plaintext,Edit1->Text.c_str());

skal gå galt !

Brug:

    char Plaintext[100] = "";              //variabel til teksten
    strcat(Plaintext,Edit1->Text.c_str());
Avatar billede arne_v Ekspert
07. januar 2004 - 20:43 #5
Svarer til:

char Plaintext[1] = "";

og så er der ikke plads til data.
Avatar billede arne_v Ekspert
07. januar 2004 - 20:44 #6
Jeg tror faktisk at det er det !
Avatar billede mad_man Nybegynder
07. januar 2004 - 20:56 #7
uhhh nu virker det =) mange tak... hvor svær er den kryptering og bryde ????...
Avatar billede arne_v Ekspert
07. januar 2004 - 21:00 #8
Den er ekstrem nem.

Hvis du laver key til forskellige bogstaver er den *kun* nem !

:-)
Avatar billede arne_v Ekspert
07. januar 2004 - 21:01 #9
og et svar
Avatar billede mad_man Nybegynder
07. januar 2004 - 21:09 #10
=) ja jeg har også lavet den om til noget volapyg =P... men man kan vel også lave noget med at putte noget tid og et password som brugeren laver som man så skal huske...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester