Mục lục:
- Quân nhu
- Bước 1: Khai báo các biến và nhận đầu vào
- Bước 2: Tạo bảng chữ cái mới
- Bước 3: Chuyển tin nhắn
- Bước 4: Bổ sung
Video: Chương trình mật mã Caesar bằng Python: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
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ã.
Đề xuất:
Lập trình bất kỳ bo mạch / mô-đun ESP8266 nào với Phần mềm chương trình cơ sở lệnh AT: 5 bước
Lập trình bất kỳ bo mạch / mô-đun ESP8266 nào Với Phần mềm điều khiển lệnh AT: Mọi mô-đun và bo mạch ESP8266 có thể được lập trình theo nhiều cách: Arduino, python, Lua, lệnh AT, nhiều hơn nữa có thể là … Ba đầu tiên trong số chúng tốt nhất cho hoạt động độc lập, phần mềm AT là để sử dụng ESP8266 làm mô-đun hoặc để kiểm tra nhanh với TTL RS232 c
Chương trình bảo vệ bằng mật khẩu: 4 bước
Chương trình bảo vệ bằng mật khẩu: Đây là một cách để ẩn mật khẩu máy tính. Nó sẽ cho phép bạn bảo vệ dữ liệu có giá trị nhưng cũng sẽ cho phép bạn khôi phục mật khẩu bị quên mà không gặp quá nhiều khó khăn. Mặc dù nó có thể không phải là giải pháp thực tế nhất, nhưng ý tưởng này chắc chắn rất
Chương trình bổ sung đơn giản bằng ngôn ngữ lập trình Shakespeare: 18 bước
Chương trình bổ sung đơn giản trong ngôn ngữ lập trình Shakespeare: Ngôn ngữ lập trình Shakespeare (SPL) là một ví dụ về ngôn ngữ lập trình bí truyền, một ngôn ngữ có thể thú vị để tìm hiểu và vui khi sử dụng, nhưng không đặc biệt hữu ích trong các ứng dụng đời thực. SPL là một ngôn ngữ mà mã nguồn r
Cách lập trình MCU PIC với bộ lập trình PICkit bằng bảng mạch: 3 bước
Cách lập trình PIC MCU Với Bộ lập trình PICkit Sử dụng Bảng mạch: Bạn không cần các công cụ đắt tiền và phức tạp để chơi với các bộ vi điều khiển PIC (hoặc bất kỳ loại nào khác). Tất cả những gì bạn cần là một bảng mạch để bạn kiểm tra mạch và lập trình của mình. Tất nhiên một số loại lập trình viên và IDE là cần thiết. Trong hướng dẫn này
Hướng dẫn lập trình thú vị cho nhà thiết kế - Kiểm soát quy trình chương trình- Tuyên bố vòng lặp: 8 bước
Hướng dẫn lập trình thú vị cho nhà thiết kế - Điều khiển quy trình chương trình- Tuyên bố vòng lặp: Điều khiển quy trình chương trình- Tuyên bố vòng lặp Từ chương này, bạn sẽ tiếp xúc với một điểm kiến thức quan trọng và mạnh mẽ - Câu lệnh vòng lặp. Trước khi đọc chương này, nếu bạn muốn vẽ 10.000 vòng tròn trong chương trình, bạn chỉ có thể thực hiện với một