Krypteringsprogram

Tags:    c++

<< < 12 > >>
Hej alle sammen (Bertel Brander:D)

jeg har ved hjælp af informationer herfra siden, fået sammensat et ganske simpelt lille program. Mit problem er at jeg ikke helt forstår hvad de enkelte dele gør..
En uddybende beskrivelse af den ville være MEGET behjælpelig

Fold kodeboks ind/udKode 

På fohånd mange tak for hjælpen

Mvh
Søren V. Jensen



Ideen i "krypteringen" er at skifte a ud med k, b med l, c med m, A med K, B med L osv. Alle andre tegn bliver ikke ændret.

I Crypt løber man strengen igennem, et tegn af gangen, og checker om tegnet er et bogstav fra a - z eller A - Z, hvis det er, byttes tegnet ud med k - j eller K - J, ellers bevares tegnet uændret.

Decrypt gør det samme, blot den modsatte vej.

Koden i main er blot et lille test program.

Hvis du har specifikke spørgsmål til programmet skal jeg gerne svare på dem.

Krypteringen som programmet foretager er meget simpel og derfor meget enkel at bryde.



Kryptering er bare en ligning med 2 bekendte og en ubekendt.



Hej alle sammen (Bertel Brander:D)

jeg har ved hjælp af informationer herfra siden, fået sammensat et ganske simpelt lille program. Mit problem er at jeg ikke helt forstår hvad de enkelte dele gør..
En uddybende beskrivelse af den ville være MEGET behjælpelig

Fold kodeboks ind/udKode 

På fohånd mange tak for hjælpen

Mvh
Søren V. Jensen


Det din programsnippet laver er *ikke* kryptering, men det man i daglig tale benævner med det engelske ord encraption.
Din krypteringsmetode benytter sig af en "hemmelig" algoritme. Dette er forkert og alt andet end sikkert! Dine const arrays vil være synlige i din kompilerede fil og kan trækkes ud og vil derfor ikke være hemmelige. Jeg ville ændre metodesignaturen, så den måde tager din cipher- / klartekst og din nøgle.

string Crypt(const string& aIn, const string& aKey);
string Decrypt(const string& aIn, const string& aKey);

Som hovedregel, når man laver kryptering så skal man overholde Kerckhoffs princip, dvs.:

1) algoritme skal være offentlig
2) nøglen skal være hemmelig

Den mest simple metode, som illustrere dette princip. Det er cæsar's krypteringsalgoritme, men som dog stadig *ikke* er sikker på grund af den er så simpel og har en utrolig lille nøgle - men den illusrerer dog Kerckhoffs princip meget godt.

Fold kodeboks ind/udKode 


Her er nøglen k, som er *hemmelig*, og den er et tal mellem 1 og antallet af bogstaver i alfabetet, og N er netop det antal bogstaver, som er i alfabetet. Algoritmen som er *offentlig* er ganske simpelt at man udskifter hvert bogstav i alfabetet med det bogstav der står på positionen k længere henne. Med en nøgle k = 3 vil "ABC" blive til "DEF". Dekrypteringen fungerer så blot modsat.

Du kan også se en af mine artikler på codeproject.com som behandler dette summarisk.

http://www.codeproject.com/cpp/EncryptionCryptoAPI.asp


En anden artikel hvor jeg har lavet en lille komponent, der benytter sig af krypteringsalgoritmen RC4 og er væsentlig mere sikker kan også findes på codeproject.com. RC4 benytter sig af streamcipher og er derfor også rimelig hurtig, men stadig ikke en af de sikreste.

http://www.codeproject.com/cpp/RC4CPP_DK.asp


Hth

Jess



Indlæg senest redigeret d. 01.06.2007 09:48 af Bruger #10448
Kryptering er bare en ligning med 2 bekendte og en ubekendt.


Sådan kan det principielt og i grove træk godt illustreres set fra de to parter (a,b) som begge har nøglen, men for en tredjepart, som ønsker at aflytte / opsnappe beskederne og ikke har nøglen vil det være 2 ubekendte og 1 bekendt.





Jeg tænkte på om der ikke var en der har god forstand på C++ der kunne forklare opretters kode, punkt for punkt.

Venligst
Peder



Så vidt jeg kan se er programmet ret simpelt, der bliver ikke brugt nogen avancerede features eller funktioner, så jeg undrer mig lidt over at man vil have programmet beskrevet i detaljer.
Hvis der er konkrete spørgsmål svarer jeg naturligvis gerne på dem.



Hvis man er meget i tvivl om hvad de forskellige dele af koden gør?

For som total ny på c++ markedet ville det være rigtig dejligt.

På forhånd tak



Hvis du er total ny til C++ tror jeg at du har mere glæde af:
http://www.udvikleren.dk/C/Article.aspx/286/

Når du har læst de første ca. 10 afsnit burde krypterings programmet være let at dekryptere.



Det vil jeg forsøge, men jeg kan ikke overtale en venlig udvikler til lige at sætte nogle forklaringer i koden som spørger har sendt?

Venligst, og mange tak
Peder Vang Pedersen



Julietlovelove1@yahoo.co.uk
Hello dear new friend,
how are you today i hope that every things is ok with you as is my pleassure to contact you after viewing your profile which really interest me in having communication with you if you will have the desire with me so that we can get to know each other better and see what happened in future.
i will be very happy if you can write me through my email for easiest communication and to know all about each other,here is my email (Julietlovelove1@yahoo.co.uk) i will be waiting to hear from you as i wish you all the best for your day.
yours new friend.
Juliet



<< < 12 > >>
t