Mật Mã Caesar - Lập Trình

Sử dụng Mật mã Caesar trong Ngôn ngữ lập trình Java

Dựa vào cơ chế vừa nêu trên của Mật mã Caesar, chúng ta viết một lớp tên là CaesarCode và thực hiện phương thức mã hoá encrypt() như sau:

public static String encrypt(String msg, int key) { char arr[] = new char[msg.length()]; for (int i = 0; i < msg.length(); i++) { int e = (int) msg.charAt(i) + key; e = e > (int) 'Z' ? e - 26 : e; arr[i] = (char) e; } return new String(arr); }

Thực hiện cơ chế giải mã dựa vào phương thức decrypt() như sau:

public static String decrypt(String msg, int key) { char arr[] = new char[msg.length()]; for (int i = 0; i < msg.length(); i++) { int e = (int) msg.charAt(i) - key; e = e < (int) 'A' ? e + 26 : e; arr[i] = (char) e; } return new String(arr); }

Chúng ta có thể viết hàm main() để kiểm tra cơ chế mã hoá và giải mã của mật mã Caesar như sau:

public static void main(String[] args) { int key = 25; String originalMessage = "HELLOCAESARCODE"; String encryptedMessage = CaesarCode.encrypt(originalMessage, key); String decryptedMessage = CaesarCode.decrypt(encryptedMessage, key); System.out.println("Original Message: " + originalMessage); System.out.println("Encrypted Message: " + encryptedMessage); System.out.println("Decrypted Message: " + decryptedMessage); }

Tất nhiên, với số lượng chìa khoá mã giới hạn là 25 như vậy thì thật chẳng khó khăn gì với một người bình thường mà chưa muốn nói gì đến việc sử dụng máy tính đặc biệt là lập trình. Ta có thể viết chương trình để phá mật mã Caesar như sau:

public static void main(String[] args) { for (int i = 1; i < 26; i++) { System.out.println("Key=" + i + " -> " + CaesarCode.decrypt(encryptedMessage, i)); } }

Xem chi tiết mã nguồn tham khảo tại đây.

Hoặc có thể chạy thử chương trình sau:

Từ khóa » Giải Mật Mã Caesar