Tarvisin ohjelman joka muuttaa syötetyn tekstin salakirjoitukseksi seuraavasti
Vokaalit:
A -> 9, E -> 8, ... , Ö -> 1
Konsonantit:
B -> C, C -> D, ... , Z -> B
sen pitäisi myös osata muuttaa salattu kirjoitus takaisin. Osaisiko joku auttaa aloittelijaa???
Vokaalit:
A -> 9, E -> 8, ... , Ö -> 1
Konsonantit:
B -> C, C -> D, ... , Z -> B
sen pitäisi myös osata muuttaa salattu kirjoitus takaisin. Osaisiko joku auttaa aloittelijaa???
Vastaukset 6
Vanhimmat
Kotitehtävät tehdään itse eikä niitä teetetä muilla.
Tämä ei ole nyt ratkaisu ongelmaasi, kun en jaksa nyt miettiä =) mutta tässä olis simppeli ja toki helppo murtaa myös, heh!
Invertoi ASCII merkistöjen koodien bitit nurinpäin.
char a = 65; // muistaakseni A merkki
char b =~a;
nyt bitit muuttujassa b on invertoitu (1011 = 0100) ja merkki on siansaksaa =)
Käännös onnistuu takaisin kun bitit taas invertoidaan takaisin...
a =~b;
Bittejä voi myös jatokäsitellä omilla medoteilla eteenpäin....
että kyseinen ohjelma toimii salakirjoituksena. Kuka tahansa lukiolaisnörtin alku avaa tuon viidessätoista minuutissa.
(Viestissä olevat sekavat numerot ja kirjaimet näkyvät oikein jos kopioit ja liität viestin kokonaisuudessaan WordPadiin)
Eräs kenties vanhimmista konsteista salata kirjoitusta on se, että jokin teksti:
=====
"Minä olen onnellinen nörtti"
=====
Ja jos avainsana olisi "terve" niin avainsanaa verrattaisiin koodattavaan tekstiin seuraavasti:
=====
"Minä olen onnellinen nörtti"
"terv eter veterveter veterv"
=====
Käännetään salakirjoitukseksi siten, että jokainen kirjainpari (M-T, I-E...) käännetään numeroiksi seuraavasti:
====
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
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 Å Ä Ö
ja numeroina kirjoitus näyttäisi tältä:
"Minä olen onnellinen nörtti"
"13,9,14,28_15,12,5,14_15,14,14,5,12,12,9,14,5,14_14,29,18,20,20,9"
Koodisana eli "terve" näyttäisi numeroina taasen tältä:
"terve"
"20,5,18,22,5"
====
Nyt ideana on laskea salattavan kirjoituksen ja salasanan välinen ero ja tämän eron avulla saamme luotua varsinaisen salakirjoituksen. Luonnollisestikkin salakirjoitus myös puretaan samalla tavalla kuin kirjoitetaankin, mutta käännetyssä järjestyksessä.
Laskuerotus tapahtuu seuraavasti:
====
"Minä olen onnellinen nörtti"
"13,9,14,28_15,12,5,14_15,14,14,5,12,12,9,14,5,14_14,29,18,20,20,9"
"terve"
"20,5,18,22,5"
13(M)-20(t)= 22(V) // eli, kun M kirjaimen kohdalta lähdettiin takaperin laskemaan 20 kirjainta pois ja saavuttiin kirjaimeen A niin laskua jatkettiin aakkosten loppupäästä Ö.
Jos laskutapa vaikuttaa sekavalta niin tutkailkaa tätä kokonaista koodattua kirjoitusta "Minä olen onnellinen nörtti":
"Minä olen onnellinen nörtti" ja numeroiden alapuolella "terve"
"13,9,14,28_15,12,5,14_15,14,14,5,12,12,9,14,5,14_14,29,18,20,20,9"
"20,5,18,22_5,20,5,18_22,5,20,5,18,22,5,20,5,18_22,5,20,5,18,22"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
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 Å Ä Ö
====
Eli varsinaisesti salakirjoituksen kirjaimet saataisiin näin:
13 - 20 = 22 (koska jos A on 1 ja B on 2 ja aakkosten alussa [koska lasku on vähennyslaskua] jatketaan lasekmista aakkosten lopusta)
9 - 5 = 4
14 - 18 = 25
28 - 22 = 6
"MINÄ" koodattuna "VDYF"
Taitanette huomata, että kuinka käännöstyö tapahtuu? Oikeastaan olisi mielenkiintoista rakentaa tällaiseen salausmenetelmään perustuva koodaaja joka kaiken lisäksi vielä arpoisi kännössanan valitun kielen seasta. Ei kellään sattuisi olemaan innostusta moiseen hommaan, itse kun olen aika laiska?
...vastauksista, vaikka niistä ei mulle ollutkaan hyötyä, mutta ehkä jollekki muulle. Taidan olla liian pienissä kengissä vielä tässä hommassa.
ihan yksinkertaisesti pistät tekstin taulukkoon ja luet sen for-silmukassa läpi niin että vaihdat halutut kirjaimet toisiksi!
esim.
taulu[25]={"tekstiääää..."};
for(i=0;i