public class Play
{
static String s1,st,d;
static StringBuffer s;
static int m,n,c,choice,p,q,k;
static int z[]=new int[10];
static char a[][];
public static void dis()
{
System.out.println();
System.out.println("Matrix :");
System.out.println();
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(a[i][j]!='$')
System.out.print(a[i][j]+" ");
else
System.out.print(" ");
}
System.out.println();
}
System.out.println();
}
public static void enc(DataInputStream dis)throws Exception
{
while(true)
{
c=0;
s1="";
System.out.println("------------------------------------------------------------------------");
System.out.print("Enter columns Sequence between 1 to "+n+" : ");
st=dis.readLine();
d=st+d;
System.out.println();
for(int i=0;i<n;i++)
{
c=(int)st.charAt(i)-49;
for(int j=0;j<m;j++)
{
if(a[j][c]!='$')
s1=s1+a[j][c];
}
}
s1.trim();
c=0;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
if(c<s1.length())
a[i][j]=s1.charAt(c++);
else
a[i][j]='$';
dis();
System.out.println();
System.out.println();
System.out.print("Do You want to continue(yes(1)/no(0)) : ");
choice=Integer.parseInt(dis.readLine());
if(choice==0)
{
System.out.println("****************************************************************");
System.out.println();
System.out.println("Ecryption results in the ciphertext : "+s1);
System.out.println();
//System.exit(0);
return;
}
}
}
public static void dec()
{
k=0;
p=s1.length()/n;
q=s1.length()%n;
//System.out.println("p = "+p+" q = "+q+" d = "+d);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
a[i][j]='$';
for(int i=0;i<d.length();i++)
{
c=(int)d.charAt(i)-49;
//System.out.println("c = "+c);
if(c>=q)
{
for(int j=0;j<p;j++)
{
a[j][c]=s1.charAt(k++);
}
}
else
{
for(int j=0;j<p+1;j++)
{
a[j][c]=s1.charAt(k++);
}
}
dis();
if(k==s1.length())
{
s1="";
k=0;
for(int x=0;x<m;x++)
for(int j=0;j<n;j++)
if(a[x][j]!='$')
{
s1=s1+a[x][j];
a[x][j]='$';
}
}
}
System.out.println("Decryption results in the plaintext : "+s1);
}
public static void main(String[] args)
{
try
{
DataInputStream dis=new DataInputStream(System.in);
System.out.print("Enter Plain text : ");
s1=dis.readLine();
s=new StringBuffer(s1);
//REMOVING WIDE-SPACES
for(int i=0;i<s.length();i++)
if(s.charAt(i)==' ')
s.deleteCharAt(i);
s1=new String(s);
d="";
System.out.println("Enter size of the array ");
System.out.print("Enter no of rows = ");
m=Integer.parseInt(dis.readLine());
System.out.print("Enter no of columns = ");
n=Integer.parseInt(dis.readLine());
a=new char[m][n];
c=0;
//ENTERING IN THE ARRAY
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
if(c<s1.length())
a[i][j]=s1.charAt(c++);
else
a[i][j]='$';
dis();
System.out.println("------------------------------------------------------------------------");
enc(dis);
System.out.println("-------------------------------Decryption-------------------------------");
dec();
}
catch(Exception e)
{}
}
}
/*
Enter Plain text : computer Engg.
Enter size of the array  
Enter no of rows = 4
Enter no of columns = 5
Matrix :
c  o  m  p  u  
t  e  r  E  n  
g  g  .        
------------------------------------------------------------------------
------------------------------------------------------------------------
Enter columns Sequence between 1 to 5 : 45213
Matrix :
p  E  u  n  o  
e  g  c  t  g  
m  r  .        
Do You want to continue(yes(1)/no(0)) : 1
------------------------------------------------------------------------
Enter columns Sequence between 1 to 5 : 23541
Matrix :
E  g  r  u  c  
.  o  g  n  t  
p  e  m        
Do You want to continue(yes(1)/no(0)) : 0
****************************************************************
Ecryption results in the ciphertext :  Egruc.ogntpem
-------------------------------Decryption-------------------------------
Matrix :
   E           
   g           
   r           
Matrix :
   E  u        
   g  c        
   r  .        
Matrix :
   E  u     o  
   g  c     g  
   r  .        
Matrix :
   E  u  n  o  
   g  c  t  g  
   r  .        
Matrix :
p  E  u  n  o  
e  g  c  t  g  
m  r  .        
Matrix :
         p     
         E     
Matrix :
         p  u  
         E  n  
Matrix :
   o     p  u  
   e     E  n  
   g           
Matrix :
c  o     p  u  
t  e     E  n  
g  g           
Matrix :
c  o  m  p  u  
t  e  r  E  n  
g  g  .        
Decryption results in the plaintext :  computerEngg.
*/
 
No comments:
Post a Comment