Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Mật mã Caesar là một loại mật mã cổ xưa và được sử dụng rộng rãi, dễ mã hóa và giải mã. Nó hoạt động bằng cách dịch chuyển các chữ cái trong bảng chữ cái để tạo ra một bảng chữ cái hoàn toàn mới (ABCDEF có thể thay đổi 4 chữ cái và sẽ trở thành EFGHIJ).
Caesar Ciphers không phải là loại mật mã an toàn nhất hiện có nhưng rất tốt cho các nhiệm vụ nhỏ như chuyển các ghi chú bí mật hoặc tạo mật khẩu mạnh hơn một chút. Thật sự rất dễ dàng để giải mã mã, nhưng sẽ rất tẻ nhạt để mã hóa một mã nếu bạn không ghi nhớ bảng chữ cái đặc biệt.
Để làm cho quá trình này dễ dàng hơn, chúng ta có thể sử dụng sức mạnh của máy tính, cụ thể hơn là ngôn ngữ lập trình Python.
Có thể hướng dẫn này sẽ chỉ cho bạn cách tạo một chương trình chuyển đổi thông điệp thành mật mã theo lệnh của bạn.
Quân nhu
Tất cả những gì bạn cần là một trình thông dịch Python: IDLE, Pycharm và Thonny là một số tùy chọn tốt, miễn phí (tôi đã sử dụng Pycharm)
Kiến thức cơ bản về Python
Bước 1: Khai báo các biến và nhận đầu vào
Để thực sự lưu trữ các giá trị chuỗi (văn bản) của bảng chữ cái, tin nhắn, dịch chuyển, v.v., chúng ta cần sử dụng các biến. Chúng tôi bắt đầu bằng cách khai báo các biến 'bảng chữ cái', 'một phần', 'hai phần' và 'bảng chữ cái mới'. Tôi đã viết tên của các biến trong Camel Case trong mã của mình (từ đầu tiên là chữ thường và chữ hoa thứ hai) nhưng bạn có thể viết theo bất kỳ cách nào bạn muốn, miễn là bạn nhớ thay đổi nó trong suốt phần còn lại của mã. Biến bảng chữ cái có giá trị "abcdefghijklmnopqrstuvwxyz". Tất cả các biến khác được đặt thành "", là một chuỗi trống vì chúng tôi chưa có giá trị của chúng.
Những gì điều này đang làm là thiết lập hệ thống Bộ phận, đó là những gì chúng tôi đang sử dụng để thực sự tạo ra sự thay đổi. Điều này sẽ được giải thích trong một bước sau.
Sau đó, chúng ta phải nhận được thông báo và giá trị dịch chuyển từ người dùng. Chúng tôi sử dụng chức năng đầu vào để làm điều này. Phần mã này yêu cầu người dùng cung cấp một tin nhắn và một con số để thay đổi bảng chữ cái.
MÃ SỐ:
alphabet = "abcdefghijklmnopqrstuvwxyz"
partOne = ""
partTwo = ""
newAlphabet = ""
message = input ("Vui lòng nhập thông báo bạn muốn dịch:").lower ()
key = int (input ("Vui lòng nhập số bạn muốn thay đổi theo:"))
Bước 2: Tạo bảng chữ cái mới
Bây giờ để tạo bảng chữ cái được dịch chuyển. Để làm điều này, chúng tôi sẽ sử dụng hệ thống từng phần. Hệ thống từng phần là nơi máy tính chia bảng chữ cái thành hai phần (một cách nói lạ mắt là các phần). Phần đầu tiên là bao lâu bạn đã nói với chương trình để thay đổi, và phần thứ hai là phần còn lại. Máy tính chuyển đổi các phần. Đó chính xác là những gì mã đang làm, cùng với câu lệnh đầu tiên, nói rằng nếu sự thay đổi là 0, bảng chữ cái mới và bảng chữ cái cũ sẽ giống nhau vì bạn không chuyển đổi bất kỳ thứ gì.
Ví dụ:
Trình tự - 123456789
Một phần - 123; Một phần hai - 456789
Trình tự mới - 456789123
MÃ SỐ:
phím if == 0:
newAlphabet = bảng chữ cái
phím elif> 0:
partOne = bảng chữ cái [: key]
partTwo = bảng chữ cái [key:]
newAlphabet = partTwo + partOne
khác:
partOne = bảng chữ cái [:(26 + phím)]
partTwo = bảng chữ cái [(26 + phím):]
newAlphabet = partTwo + partOne
Bước 3: Chuyển tin nhắn
Bây giờ chúng ta có bảng chữ cái và bảng chữ cái mới. Tất cả những gì còn lại là chuyển tin nhắn thành mã.
Đầu tiên, chúng tôi đặt một biến mới và gọi nó là 'được mã hóa' và đặt nó thành "". Sau đó, chúng tôi viết một vòng lặp thực sự phức tạp để kiểm tra từng chữ cái trong tin nhắn và chuyển nó sang chữ cái mới. Nó xuất ra kết quả và bạn có nó, một mã được chuyển đổi thành công!
MÃ SỐ:
mã hóa = "" cho message_index trong phạm vi (0, len (message)):
nếu thông báo [message_index] == "":
được mã hóa + = ""
cho alphabet_index trong phạm vi (0, len (newAlphabet)):
nếu message [message_index] == bảng chữ cái [alphabet_index]:
được mã hóa + = newAlphabet [alphabet_index]
in (mã hóa)
Bước 4: Bổ sung
Đính kèm là tệp mã.