Network Record
Network Record
PROGRAM
import java.util.Scanner;
public class CaesarCipher {
public static String encrypt(String text, int shift) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (Character.isLetter(c)) {
char base = Character.isUpperCase(c) ? 'A' : 'a';
result.append((char) ((c - base + shift) % 26 + base));
} else {
result.append(c);
}
}
return result.toString();
}
OUTPUT
Enter the Plain text: plain
Enter the key: 4
Cipher text: tpemr
Decrypted text: plain
EX.NO:2 PLAYFAIR CIPHER
PROGRAM
import java.util.Scanner;
import java.util.HashSet;
public class PlayfairCipher {
public static char[][] generatePlayfairMatrix(String keyword) {
keyword = keyword.toUpperCase().replace('J', 'I').replace(" ", "");
HashSet<Character> used = new HashSet<>();
char[] matrix = new char[25];
int index = 0;
for (char ch : keyword.toCharArray()) {
if (!used.contains(ch)) {
matrix[index++] = ch;
used.add(ch);
}
}
for (char ch = 'A'; ch <= 'Z'; ch++) {
if (ch == 'J') continue;
if (!used.contains(ch)) {
matrix[index++] = ch;
used.add(ch);
}
}
return playfairMatrix;
}
int i = 0;
while (i < plaintext.length()) {
char a = plaintext.charAt(i);
char b = (i + 1 < plaintext.length()) ? plaintext.charAt(i + 1)
: 'Z';
if (a == b) {
preparedText.append(a).append('Z');
i++;
} else {
preparedText.append(a).append(b);
i += 2;
}
}
if (preparedText.length() % 2 != 0) {
preparedText.append('Z');
}
return preparedText.toString();
}
if (posA[0] == posB[0]) {
ciphertext.append(matrix[posA[0]][(posA[1] + 1) % 5]);
ciphertext.append(matrix[posB[0]][(posB[1] + 1) % 5]);
} else if (posA[1] == posB[1]) {
ciphertext.append(matrix[(posA[0] + 1) % 5][posA[1]]);
ciphertext.append(matrix[(posB[0] + 1) % 5][posB[1]]);
} else {
ciphertext.append(matrix[posA[0]][posB[1]]);
ciphertext.append(matrix[posB[0]][posA[1]]);
}
}
return ciphertext.toString();
}
return plaintext.toString();
}
scanner.close();
}
}
OUTPUT
Enter a keyword: hello
Enter the plaintext: world
Prepared plaintext: WORLDZ
Cipher text: YESEGX
Decrypted message: WORLDZ
EX.NO:3 HILL CIPHER
PROGRAM
import java.util.Scanner;
if (n == 2) {
determinant = (keyMatrix[0][0] * keyMatrix[1][1]) -
(keyMatrix[0][1] * keyMatrix[1][0]);
}
determinant %= 26;
if (determinant < 0) {
determinant += 26;
}
if (n == 2) {
inverseKeyMatrix[0][0] = keyMatrix[1][1] * inverseDeterminant
% 26;
inverseKeyMatrix[1][1] = keyMatrix[0][0] * inverseDeterminant
% 26;
inverseKeyMatrix[0][1] = (26 - keyMatrix[0][1]) *
inverseDeterminant % 26;
inverseKeyMatrix[1][0] = (26 - keyMatrix[1][0]) *
inverseDeterminant % 26;
}
}
}
OUTPUT
EX.NO:4 COLUMNAR TRANSPOSITION CIPHER
PROGRAM
import java.util.Arrays;
import java.util.Scanner;
return encryptedMessage.toString();
}
int index = 0;
for (int i = 0; i < columns; i++) {
for (int j = 0; j < rows; j++) {
grid[j][keyOrder[i]] = message.charAt(index++);
}
}
return decryptedMessage.toString();
}
return order;
}
}
OUTPUT