I kryptografi, er en cipher en matematisk teknik til at omdanne et budskab på en sådan måde , at den bliver ulæselig for andre end det tiltænkte målgruppe. Ciphers og crytography er blevet en vigtig del af netværkskommunikation. Mens mange former for kryptering eksisterer, de alle stammer fra en historie af cipher skabelse går tilbage til det gamle Rom , og oprettelsen af den første monoalphabetic cipher . Efter eksemplet med Caesar cipher , kan programmøren implementere en monoalphabetic ciffer i et programmeringssprog , såsom Java. Monoalphabetic Udskiftninger
kryptografer refererer til ciphers der gælder en enkelt transformation til en hel besked som " monoalphabetic . " Disse ciphers normalt tage en simpel algoritme, der udfører en transformation, og derefter anvende denne algoritme til hver tegn i beskeden . Arten af algoritmen er faktisk ligegyldigt , så meget som det er konsekvent i hele kryptering af meddelelsen. Den enkleste vil arbejde på ét tegn ad gangen, mens andre måske bruge flere tegn til at konstruere cipher .
Caesar Cipher og Hill Cipher
Den enkleste monoalphabetic cipher er Caesar Cipher , opfundet af Julius Cæsar at skjule beskeder fra sine fjender . Caesar cipher simpelthen tildeler en talværdi bogstaver, og derefter beslutter en offset . Denne forskydning flytter værdien af de bogstaver, og dermed krypterer meddelelsen. Hvis læseren kender offset, kan hun bare nulstille værdierne og læse den oprindelige meddelelse. The Hill Cipher , på den anden side, bruger matricer af tegn og værdier for at bestemme kryptering . For eksempel vil en Hill offset nøgle 2x2 værdier tager to tegn ad gangen fra matrixen og flytte deres værdi.
Caesar Cipher i Java
Caesar Cipher i Java indebærer bestemme en offset, og derefter flytte værdien af hver bogstav i en streng ved at offset. Programmøren kan oprette en liste over breve til at sammenligne den oprindelige meddelelse mod chifreringsnøgle og derefter omsætte dette budskab i cipher kryptering. Derefter kryptering bliver et spørgsmål om simpel addition : Hej
class Caesar {
public static void vigtigste ( String [] args ) {
String message = " hghajdvudbu " ; String temp = " abcdefghijklmnopqrstuvwxyz " int forskydning = 3 , String oversætte = new String ();
for (int i = 0; i < s.length (); i + +) {
< p> String t = Character.toString ( message.charAt ( i) ), int index = temp.indexOf (t ), index + = % offset 26, String add = Character.toString ( temp.charAt (index) ) < br >
oversætte + = add ; System.out.println ( translate ),
}}}
2x2 Hill Cipher i Java
The Hill cipher bruger en matrix nøgle til at formere værdier i teksten for at skabe cipher . I et simpelt tilfælde vil en 2x2 matrix bruges til at skabe en chifreringsnøgle . Programmøren vil så nødt til at bruge to tegn fra budskabet på et tidspunkt med henblik på korrekt beregning af oversatte messae , som illustreret i følgende kode : Hej
String message = " hghajdvudbu " String temp = " abcdefghijklmnopqrstuvwxyz " String oversætte = new String ();
int tast [] [] = new int [2] [ 2]
nøgle [0] [0] = 1; nøgle [ ,"0] [1] = 2; tast [1] [ 0] = 3 , tast [1 ] [1] = 4;
int letterone = 7 , int lettertwo = 6;
int nletterone = ( letterone tasten * [0] [0] ) + ( letterone tasten * [0 ] [1] ), int nlettertwo = ( lettertwo tasten * [1] [ 0] ) + ( lettertwo tasten * [1] [ ,"1 ])
oversætte = Character.toString ( temp.charAt ( nletterone % 26 ) ) + Character.toString ( temp.charAt ( nlettertwo % 26 )),
< br >