Replace/Erstat array med et andet array.

Tags:    c++

<< < 12 > >>
Hej alle, jeg er ved at lave en helt simpel kryptering og dekryptering.
Den skal bare erstatte nogen bogstaver med en række andre bogstaver og tal.

Eksempel: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,æ,ø,å
Erstattes med: b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,æ,ø,å,a

I det tilfælde vil alle bogstaver så blive flyttet en tak, men det skal naturligvis være muligt at blande bogstaverne som man vil, sådan at krypteringen er forskellig for hver enkelt passkey.

Det med passkey klarer jeg selv, eller også tager vi det til den tid.
Så det jeg skal have hjælp til er:

at lave 2 arrays og derefter erstatte alle tegn i en string med de tilsvarende tegn i array2.

Håber i forstår, tak :D



13 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Robert Larsens henvisning er ellers perfekt.
En simpel krypteringsmetode, Cæsar, kunne gøres sådan her:

a=1
b=2
c=3
...
å=24

du kan så addere et tal til, fx 2. altså så er a = c. Tallet, 2 er så din nøgle. Vil du dekryptere, tager c, som er lig 3, og trækker nøglen,2 fra. Du har nu a igen.




Behold bare pointene Thomas. Jeg bruger dem ikke.

Jeg er enig med Jess, og det er ALLE som ved noget om sikkerhed også. Det er meget nemt at kigge ind bag brugerfladen i dit program og der aflure algoritmen du krypterer med, så det er en rigtig dårlig idé at lægge sikkerheden i algoritmen, men med Vigenere krypterings algoritmen er der jo så en nøgle, som sikkerheden ligger i. Nu er Vigenere heller ikke en super sikker algoritme at bruge, men den er faktisk ret anvendelig ved korte beskeder hvor der ikke kan samles nok statistik til en brugbar kryptoanalyse.


Der kan også bruges RC4 krypteringsalgoritmen. Denne benytter sig af streamcipher og er derfor også hurtig til kryptering og dekryptering.

Se en af de links jeg postede i min tidligere post for et eksempel på hvordan denne kan implementeteres.



sæt dem lig hinanden?



Kunne man ikke lave en map<string,string>. Hver gang du tilgår mappet med bogstavet a, så spytter den bogstavet b ud? Altså lave et objekt der kan håndtere det?
Jeg ved det ikke, men det var mit bud.



Prøv at kigge på Vigenere algoritmen.
http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher

Du behøver slet ikke en masse arrays. Kryptering og dekryptering kan klares algebraisk.



Indlæg senest redigeret d. 30.10.2007 13:46 af Bruger #2695
Robert Larsen, det der kan jeg jo ikke bruge til meget.. det er en 20 sider lang artikel om en måde at kryptere på. Jeg kender kun til lidt c++ og endnu mindre til kryptering.
Det skal bare være en simpel kryptering, hvor den finder bogstaverne og så erstatter dem med nogen andre, fik jeg måske ikke skrevet klart nok?

Nogen konkrete kode eksempler ville være perfekt :D



Indlæg senest redigeret d. 30.10.2007 19:28 af Bruger #11914
Robert Larsen, det der kan jeg jo ikke bruge til meget.. det er en 20 sider lang artikel om en måde at kryptere på. Jeg kender kun til lidt c++ og endnu mindre til kryptering.
Det skal bare være en simpel kryptering, hvor den finder bogstaverne og så erstatter dem med nogen andre, fik jeg måske ikke skrevet klart nok?

Nogen konkrete kode eksempler ville være perfekt :D


Hmm...det var ellers den algoritme du beskrev, og hvis du læser den grundigt (specielt 'Description'), så vil du få masser af tips til dens implementering. Men anyway...here goes:
Fold kodeboks ind/udKode 


Og lige et eksempel fra Wikipedia:
Fold kodeboks ind/udKode 


Du kan selv lege lidt med at tilføje mulighed for selv at specificere alfabetet eller smide mellemrum, danske tegn og alt muligt andet skrammel i.



Indlæg senest redigeret d. 31.10.2007 09:13 af Bruger #2695
Den lukker filen og laver en windows fejl :(
Nå men det er vist for avanceret for mig anyways.. jeg må prøve noget andet.. jeg havde ellers fået lavet dette som virkede meget fint, udover med mellemrum:

Fold kodeboks ind/udKode 


Jeg ved godt det kan løses på en meget bedre måde, og jeg vil gerne i kommenterer det, hvis i har noget på mit niveau..

Robert, hvis du lige smider et svar...



Jeg vil godt lige have lov til at indsparke en fodnote her. Når man skal lave en kryptering er det vigtigt at denne ikke kun bliver baseret på algoritmen, men at der også bliver valgt en nøgle. da det tager ingen tid at bryde en kryptering, hvis den kun er baseret på en hemmeligholdt algoritme! Et glimrende eksempel på dette er det fatale design af GSM netværket, hvor man har hemmeligholdt A5 algoritmen og sender nøglen i klartekst mellem parterne.

Tommelfingerreglen er altid at algoritmen skal være offentlig og nøglen skal være hemmelig!

Prøv at se nogle af mine artikeler på codeproject.com omkring kryptering og hashing.

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

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

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


HTH



Indlæg senest redigeret d. 31.10.2007 13:40 af Bruger #10448
Behold bare pointene Thomas. Jeg bruger dem ikke.

Jeg er enig med Jess, og det er ALLE som ved noget om sikkerhed også. Det er meget nemt at kigge ind bag brugerfladen i dit program og der aflure algoritmen du krypterer med, så det er en rigtig dårlig idé at lægge sikkerheden i algoritmen, men med Vigenere krypterings algoritmen er der jo så en nøgle, som sikkerheden ligger i. Nu er Vigenere heller ikke en super sikker algoritme at bruge, men den er faktisk ret anvendelig ved korte beskeder hvor der ikke kan samles nok statistik til en brugbar kryptoanalyse.



<< < 12 > >>
t