Double Transposition in Java
/* Dalibor Labudovic*/
/* not stable */
/* not stable */
package doubletransporition;
import java.io.*;
import java.util.*;
class NewDoubleTransposition
{
public static void main(String args[])
{
NewEncryptAndDecrypt ned=new NewEncryptAndDecrypt();
ned.input();
}
}
class NewEncryptAndDecrypt
{
Scanner sc=new Scanner(System.in);
void input()
{
int ch;
do
{
System.out.println("\n\t\t*****ENTER*****");
System.out.println("\t1.Encrypt");
System.out.println("\t2.Decrypt");
System.out.println("\t0.Exit");
ch=sc.nextInt();
switch(ch)
{
case 1:
{
encrypt();
break;
}
case 2:
{
decrypt();
break;
}
}
}while(ch!=0);
}
void encrypt()
{
//String ip,t;
char text[][],enc[][];
int key,i,j,row[],col[],r,c;
int k=0,m,n;
System.out.print("Enter The Plain Text ");
StringBuilder ip = new StringBuilder(sc.next());
StringBuilder t = new StringBuilder(sc.nextLine());
// ip=sc.next();
// t=sc.nextLine();
System.out.print("Enter The Number Of Rows ");
r=sc.nextInt();
System.out.print("Enter The Number Of Columns ");
c=sc.nextInt();
text=new char[r][c];
enc=new char[r][c];
row=new int[r];
col=new int[c];
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
text[i][j]=ip.charAt(k);
k++;
}
}
System.out.println("Enter The Row Key ");
for(i=0;i<r;i++)
row[i]=(sc.nextInt()-1);
System.out.println("Enter The Column Key ");
for(i=0;i<c;i++)
col[i]=(sc.nextInt()-1);
k=0;
System.out.print("The Cipher Text Is ");
for(i=0;i<r;i++)
{
m=row[i];
for(j=0;j<c;j++)
{
n=col[j];
enc[i][j]=text[m][n];
System.out.print(""+Character.toUpperCase(enc[i][j]));
}
}
}
void decrypt()
{
String ip,t;
char text[][],enc[][];
int key,i,j,row[],col[],r,c;
int k=0,m,n;
System.out.print("Enter The Cipher Text ");
ip=sc.next();
t=sc.nextLine();
System.out.print("Enter The Number Of Rows ");
r=sc.nextInt();
System.out.print("Enter The Number Of Columns ");
c=sc.nextInt();
text=new char[r][c];
enc=new char[r][c];
row=new int[r];
col=new int[c];
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
text[i][j]=ip.charAt(k);
k++;
}
}
System.out.println("Enter The Row Key ");
for(i=0;i<r;i++)
row[i]=(sc.nextInt()-1);
System.out.println("Enter The Column Key ");
for(i=0;i<c;i++)
col[i]=(sc.nextInt()-1);
k=0;
for(i=0;i<r;i++)
{
m=row[i];
for(j=0;j<c;j++)
{
n=col[j];
enc[m][n]=text[i][j];
}
}
System.out.print("The Retrieved Plain Text Is ");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
System.out.print(""+Character.toLowerCase(enc[i][j]));
}
}
}
}
Comments
Post a Comment