0% found this document useful (0 votes)
77 views

EX - NO - 1 (B) - Playfair Cipher - K.MOHAMED HASIM - PROGRAM

The document describes a Java program that implements the Playfair cipher encryption and decryption algorithm. The program takes in plaintext and a keyword from the user, generates a 5x5 keyword square, encrypts the plaintext by searching for character pairs in the square and applying the cipher rules, and can decrypt an encrypted ciphertext back to the original plaintext. The program manages plaintext preprocessing, encryption/decryption logic using the keyword square, and output of results.

Uploaded by

Hshhs
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views

EX - NO - 1 (B) - Playfair Cipher - K.MOHAMED HASIM - PROGRAM

The document describes a Java program that implements the Playfair cipher encryption and decryption algorithm. The program takes in plaintext and a keyword from the user, generates a 5x5 keyword square, encrypts the plaintext by searching for character pairs in the square and applying the cipher rules, and can decrypt an encrypted ciphertext back to the original plaintext. The program manages plaintext preprocessing, encryption/decryption logic using the keyword square, and output of results.

Uploaded by

Hshhs
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

EX.NO – 1(B) - Playfair Cipher– K.

MOHAMED HASIM - PROGRAM

import java.util.Scanner;

public class PlayfairHasim {

public static void main(String[] args) {

System.out.print("Welcome to Playfair Cipher\n");

System.out.print("---------------------------\n");

System.out.print("\n");

Scanner in=new Scanner(System.in);

System.out.print("Enter Plain Text to Encrypt: ");

String msg=in.nextLine();

System.out.print("Enter keyword: ");

String key=in.nextLine();

PFEncryption pfEncryption=new PFEncryption();

pfEncryption.makeArray(key);

msg=pfEncryption.manageMessage(msg);

pfEncryption.doPlayFair(msg, "Encrypt");

String en=pfEncryption.getEncrypted();

System.out.println("Encrypting....\n\nThe encrypted text is : " + en);

System.out.println("------------------------------------------\n");

System.out.println("\n Thank You ! Visit Again.... ");

Scanner sc=new Scanner(System.in);

System.out.println("\nPress 1 ro Decrypt: ");

int option=sc.nextInt();

if (option==1) {

pfEncryption.doPlayFair(en, "Decrypt");

System.out.print("\nDecrypting....\n\nThe encrypted text is: " + pfEncryption.getDecrypted());

System.out.println(" Thank You ! Visit Again.... ");

}}}

class PFEncryption{

private char [][] alphabets= new char[5][5];

private char[] uniqueChar= new char[26];

private String ch="ABCDEFGHIKLMNOPQRSTUVWXYZ";


EX.NO – 1(B) - Playfair Cipher– K.MOHAMED HASIM - PROGRAM

private String encrypted="";

private String decrypted="";

void makeArray(String keyword){

keyword=keyword.toUpperCase().replace("J","I");

boolean present, terminate=false;

int val=0;

int uniqueLen;

for (int i=0; i<keyword.length(); i++){

present=false;

uniqueLen=0;

if (keyword.charAt(i)!= ' '){

for (int k=0; k<uniqueChar.length; k++){

if (Character.toString(uniqueChar[k])==null){

break;

uniqueLen++;

for (int j=0; j<uniqueChar.length; j++){

if (keyword.charAt(i)==uniqueChar[j]){

present=true;

if (!present){

uniqueChar[val]=keyword.charAt(i);

val++;

ch=ch.replaceAll(Character.toString(keyword.charAt(i)), "");

for (int i=0; i<ch.length(); i++){


EX.NO – 1(B) - Playfair Cipher– K.MOHAMED HASIM - PROGRAM

uniqueChar[val]=ch.charAt(i);

val++;

val=0;

for (int i=0; i<5; i++){

for (int j=0; j<5; j++){

alphabets[i][j]=uniqueChar[val];

val++;

System.out.print(alphabets[i][j] + "\t");

System.out.println();

}}

String manageMessage(String msg){

int val=0;

int len=msg.length()-2;

String newTxt="";

String intermediate="";

while (len>=0){

intermediate=msg.substring(val, val+2);

if (intermediate.charAt(0)==intermediate.charAt(1)){

newTxt=intermediate.charAt(0) + "x" + intermediate.charAt(1);

msg=msg.replaceFirst(intermediate, newTxt);

len++;

len-=2;

val+=2;

if (msg.length()%2!=0){

msg=msg+'x';

}
EX.NO – 1(B) - Playfair Cipher– K.MOHAMED HASIM - PROGRAM

return msg.toUpperCase().replaceAll("J","I").replaceAll(" ","");

void doPlayFair(String msg, String tag){

int val=0;

while (val<msg.length()){

searchAndEncryptOrDecrypt(msg.substring(val, val + 2), tag);

val+=2;

}}

void searchAndEncryptOrDecrypt(String doubblyCh, String tag){

char ch1=doubblyCh.charAt(0);

char ch2=doubblyCh.charAt(1);

int row1=0, col1=0, row2=0, col2=0;

for (int i=0; i<5; i++){

for (int j=0; j<5; j++){

if (alphabets[i][j]==ch1){

row1=i;

col1=j;

}else if (alphabets[i][j]==ch2){

row2=i;

col2=j;

}}}

if (tag=="Encrypt")

encrypt(row1, col1, row2, col2);

else if(tag=="Decrypt")

decrypt(row1, col1, row2, col2);

void encrypt(int row1, int col1, int row2, int col2){

if (row1==row2){

col1=col1+1;

col2=col2+1;

if (col1>4)
EX.NO – 1(B) - Playfair Cipher– K.MOHAMED HASIM - PROGRAM

col1=0;

if (col2>4)

col2=0;

encrypted+=(Character.toString(alphabets[row1][col1])+Character.toString(alphabets[row1]
[col2]));

}else if(col1==col2){

row1=row1+1;

row2=row2+1;

if (row1>4)

row1=0;

if (row2>4)

row2=0;

encrypted+=(Character.toString(alphabets[row1][col1])+Character.toString(alphabets[row2]
[col1]));

}else{

encrypted+=(Character.toString(alphabets[row1][col2])+Character.toString(alphabets[row2]
[col1]));

}}

void decrypt(int row1, int col1, int row2, int col2){

if (row1==row2){

col1=col1-1;

col2=col2-1;

if (col1<0)

col1=4;

if (col2<0)

col2=4;

decrypted+=(Character.toString(alphabets[row1][col1])+Character.toString(alphabets[row1]
[col2]));

}else if(col1==col2){

row1=row1-1;

row2=row2-1;

if (row1<0)
EX.NO – 1(B) - Playfair Cipher– K.MOHAMED HASIM - PROGRAM

row1=4;

if (row2<0)

row2=4;

decrypted+=(Character.toString(alphabets[row1][col1])+Character.toString(alphabets[row2]
[col1]));

}else{

decrypted+=(Character.toString(alphabets[row1][col2])+Character.toString(alphabets[row2]
[col1]));

String getEncrypted(){

return encrypted;

String getDecrypted(){

return decrypted;

You might also like