Salah satu metode penyandian yang pernah digunakan pada masa Yunani Kuno adalah Sandi Caesar (Caesar Cipher). Sandi ini merupakan algoritma substitusi tertua, dan proses enkripsinya adalah mengganti (substitusi) setiap huruf pada plainteks menjadi huruf ke-3 setelahnya. Dengan kata lain, setiap huruf digeser maju sebanyak tiga huruf. Dan untuk mendekripsi cipherteks cukup dengan menggeser mundur sebanyak tiga huruf.
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”
Ni, Source codenya system sandi Caesar pake bahasa pemrograman java, tapi 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
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”
Ni, Source codenya system sandi Caesar pake bahasa pemrograman java, tapi 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