Dengan menggunakan korespondensi 1-1 antara huruf alfabet dengan bilangan, yaitu a=0, b=1,�, z=25, maka secara umum Sandi Caesar dapat dituliskan dengan persamaan:
C = P+K mod 26
Dengan demikian, misal diberikan plainteks (P) �BELAJARSANDI�, dan Kunci (K)=3, maka cipherteksnya adalah �EHODMDUVDQGL�
Berikut contoh, Source codenya system sandi Caesar pakai bahasa pemrograman java, tetapi mainnya di ASCII, jadi maen di modulus 256
import javax.swing.*;
public class Caesar
{
public static void main(String[] args)
{
int shift=0;
try {
shift=new Integer(JOptionPane.showInputDialog("Masukan Kunci(0-255):")).intValue();
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null,e.toString());
System.exit(1);
}
String plaintext=JOptionPane.showInputDialog("Masukan input/plainteks:");
//Mengubah plainteks ke dalam byte disimpan dalam array b.
byte[] b=plaintext.getBytes();
//Mengenkripsi.
b=caesarEncipher(b,shift);
//Mengubah byte ke string.
String ciphertext=new String(b);
JOptionPane.showMessageDialog(null,"Ciphertextnya adalah : "+ciphertext);
//Decipher the enciphered byte array.
b=caesarDecipher(b,shift);
}
//Fungsi Enkripsi.
public static byte[] caesarEncipher(byte[] message,int shift)
{
byte[] m2=new byte[message.length];
for (int i=0;i
{
m2[i]=(byte)((message[i]+shift)%256);
}
return m2;
}
//Fungsi Dekripsi.
public static byte[] caesarDecipher(byte[] message,int shift) {
byte[] m2=new byte[message.length];
for (int i=0;i
m2[i]=(byte)((message[i]+(256-shift))%256);
}
return m2;
}
}
Jika di running hasilnya kaya ini ni
...Selamat mencoba
Sumber : http://ilmu-kriptografi.blogspot.com/search/label/Aplikasi%20Kriptografi
Post a Comment