Kriptografi
transposisi adalah salah satu metode kriptografi yang mana cara enkripsinya
adalah dengan mengubah letak dari teks
pesan yang akan di enkripsi berdasar kunci tertentu. Dan cara dekripsinya
adalah dengan cara mengembalikan letak dari pesan tersebut berdasarkan kunci.
Salah
satu algoritma dalam kriptografi transposisi adalah transposisi rail fence,
disamping algoritma lain seperti : transposisi route, transposisi kolom, transposisi ganda, transposisi Myszkowski.
Berikut
adalah contoh transposisi rail fence dalam bahasa Java, silakan dinikmati …..
// File Name: RailFence.java
import java.util.*;
class RailFenceBasic{
int depth;
String Encryption(String plainText,int depth)throws
Exception
{
int r=depth,len=plainText.length();
int c=len/depth;
char mat[][]=new char[r][c];
int k=0;
String cipherText="";
for(int i=0;i< c;i++)
{
for(int j=0;j< r;j++)
{
if(k!=len)
mat[j][i]=plainText.charAt(k++);
else
mat[j][i]='X';
}
}
for(int i=0;i< r;i++)
{
for(int j=0;j< c;j++)
{
cipherText+=mat[i][j];
}
}
return cipherText;
}
String Decryption(String cipherText,int depth)throws
Exception
{
int r=depth,len=cipherText.length();
int c=len/depth;
char mat[][]=new char[r][c];
int k=0;
String plainText="";
for(int i=0;i< r;i++)
{
for(int j=0;j< c;j++)
{
mat[i][j]=cipherText.charAt(k++);
}
}
for(int i=0;i< c;i++)
{
for(int j=0;j< r;j++)
{
plainText+=mat[j][i];
}
}
return plainText;
}
}
class RailFence{
public static void main(String
args[])throws Exception
{
RailFenceBasic rf=new RailFenceBasic();
Scanner
scn=new Scanner(System.in);
int
depth;
String
plainText,cipherText,decryptedText;
System.out.println("Enter
plain text:");
plainText=scn.nextLine();
System.out.println("Enter
depth for Encryption:");
depth=scn.nextInt();
cipherText=rf.Encryption(plainText,depth);
System.out.println("Encrypted
text is:\n"+cipherText);
decryptedText=rf.Decryption(cipherText,
depth);
System.out.println("Decrypted
text is:\n"+decryptedText);
}
}
Tampilan
saat eksekusi :
Enter plain text:
railfencecipher
Enter depth for Encryption:
3
Encrypted text is:
rlnchafcieieepr
Decrypted text is:
railfencecipher
saya baru belajar html, css, dan php, belum sampai ke java, hehe, tapi menarik sih
ReplyDeleteLebih menarik kalau sudah bisa semua bahasa pemrograman diatas
Delete