Mục lục:

Chương trình mật mã Caesar bằng Python: 4 bước
Chương trình mật mã Caesar bằng Python: 4 bước

Video: Chương trình mật mã Caesar bằng Python: 4 bước

Video: Chương trình mật mã Caesar bằng Python: 4 bước
Video: Hướng dẫn mã hoá Ceasar trên lập trình Python (TH #ANHTTT 1) – Thầy Phạm Đức Thành 2024, Tháng mười một
Anonim
Chương trình mật mã Caesar bằng Python
Chương trình mật mã Caesar bằng Python

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

Khai báo các biến và nhận đầu vào
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

Tạo bảng chữ cái mới
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

Chuyển tin nhắn
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

Thêm vào
Thêm vào
Thêm vào
Thêm vào

Đính kèm là tệp mã.

Đề xuất: