Most recent comments
2021 in Books -- a Miscellany
Are, 2 years, 11 months
Moldejazz 2018
Camilla, 5 years, 4 months
Romjulen 2018
Camilla, 5 years, 11 months
Liveblogg nyttårsaften 2017
Tor, 6 years, 11 months
Selvbygger
Camilla, 1 month, 4 weeks
Bekjempelse av skadedyr II
Camilla, 11 months
Kort hår
Tor, 3 years, 11 months
Ravelry
Camilla, 3 years, 6 months
Melody Gardot
Camilla, 5 years, 5 months
Den årlige påske-kommentaren
Tor, 5 years, 8 months
50 book challenge
Camilla, 11 months, 3 weeks
Controls
Register
Archive
+ 2004
+ 2005
+ 2006
+ 2007
+ 2008
+ 2009
+ 2010
+ 2011
+ 2012
+ 2013
+ 2014
+ 2015
+ 2016
+ 2017
+ 2018
+ 2019
+ 2020
+ 2021
+ 2022
+ 2023
+ 2024

Kodekrækkergutta

I det siste har det dukket opp flere brev som er skrevet i kode. Folk har sittet i flere timer og tenkt/grublet over disse kodene, for å finne de hemmelige beskjedene. Det siste var en Blaise de Vigenère kode fra Arne, vi satte i gang med dekoding; dette tok forholdsvis lang tid, siden prosessen er langsom, se Autokey cipher.. I denne forbindelse lagde jeg et enkelt dataprogram i Java for å dekode denne typen krypterte tekster. Å lage dette programmet var forholdsvis simpelt, det tok omtrent en og en halv time, og mesteparten av tida brukte jeg til å lete gjennom gamle øvinger og såkalte lysark, fra grunnkurs og videregåendekurs i programmering.

For de av dere som kan programmere, kan jeg nok ikke tilby noe som helst (bortsett fra en god latter hvis dere leser den dårlige koden min), men for de som ikke er kjent med dette, eller er helt blanke, skal jeg presentere programmet, både i Java-kode og i Pseudokode, slik at dere kanskje kan lære noe; men først noen uttrykk defineres så alle kan finne ut hva jeg snakker om.

Definisjoner:

Java-kode: Dette er et programmeringspråk og kode blir skrevet på en slik måte at en Java-compiler kan kompilere dette.

Java-compiler:Dette er et dataprogram på en datamaskin som oversetter Java-kode til kjørbar kode.

Kjørbar kode: Kode som en datamaskin kan prosessere.

Pseudokode: Ikke-datakode, som er beregnet på menneskelig gjennomlesing og forståelse.

Menneskelig: Egenskaper som har med mennesker å gjøre.

Mennesker (Statistisk definisjon): Dumme som brød.


Nå kommer pseudokoden:

Først hentes teksten som ønskes dekryptert inn.(Dette er i mitt program lagt inn på forhold, men kan like gjerne leses inn fra tastatur eller fil, og det ville vært penere.)
Leser inn dekrypteringsnøkkel. (fra tastatur)

Starter med første bokstav i kodet tekst, og konverterer denne til et heltall, der A=0, B=1 osv.
Leser så inn første bokstav i nøkkelen, og konverterer denne til et heltall, der A=0, B=1 osv.

Trekker tallet for første bokstav i nøkkelen fra tallet for første bokstav i den kodede teksten.
Hvis resultatet er mindre enn null blir det lagt til 26.
(Siden jeg benytter 26 bokstavers alfabet A-Z)

Dette tallet blir så konvertert tilbake til bokstav og legges til resultatet, og til nøkkelen. (Dette tallet, innser en veldig fort, ved å studere Auto Cipher tabellen, at er den riktige, dekrypterte bokstaven.

Programmet gjentar så disse operasjonene for alle bokstavene i den kodede teksten.

Resultatet blir så presentert for brukeren.


Her kommer programmet, skrevet i Java, og dette er testet og fungerer helt greit, det er forholdsvis enkelt å ordne programmet slik at det også kan kode Auto Cipher.


Java-program:

import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class dekrypt
{
public static void main(String[] argv)
{
String krypterttekst ="OEPIUGBRADVHNZTLTUEIAIL AHZYIIGBRDVEIDNREKRAHWVNYFIIRDNR YRDYAZAXAEQGUIVSUJISLLZIOWSSRXTVAPOIR";
String nokkel;
JTextArea Utstreng = new JTextArea();
krypterttekst = krypterttekst.toUpperCase();
int dekodetall;
nokkel = JOptionPane.showInputDialog("Skriv inn nøkkelen");
nokkel = nokkel.toUpperCase();
while(nokkel != "0")
{
int konvert1, konvert2;
String dekryptert ="";
for (int i = 0;i < krypterttekst.length();i++)
{
konvert1 = ((int)krypterttekst.charAt(i) -65);
konvert2 = ((int)nokkel.charAt(i) - 65 );
dekodetall = (konvert1 - konvert2 );
if (dekodetall/< 0)
{
dekodetall = dekodetall +26 ;
}
dekryptert += (char)(dekodetall +65);
nokkel += (char)(dekodetall +65);
}
Utstreng.setText(dekryptert);
JOptionPane.showMessageDialog(null,Utstreng);
nokkel = JOptionPane.showInputDialog("Skriv inn nøkkelen");
nokkel = nokkel.toUpperCase();
}
}
}

Dette var hele programmet, det har dekryptert teksten fra Arne, selvfølgelig med riktig nøkkel.(Programmet "cracker" ikke en kodet tekst.)

Comments

Are,  30.10.05 10:02

Kult, rett og slett. Første gang noen poster kode på Calcuttagutta :) Men jeg ser vi må ha bedre støtte for indentering... velvel, ikke at det gjør noe at koden ser enda mindre leselig ut enn vanlig, da. Virker bare som vi har en hardere jobb.
Category
Miscellaneous
Tags
Views
5987
Google hits
4
Last google search
vigenere dekrypt