Mật mã Caesar là kỹ thuật mã hóa phổ biến nhất trong đó mỗi chữ cái trong văn bản gốc được thay thế bằng một chữ cái theo bảng chữ cái đã dịch chuyển. Ví dụ: với phép dịch trái là 3, D sẽ được thay thế bằng A, E sẽ trở thành B, v.v.
Nhưng chờ đã, chúng tôi cũng sẽ mô tả Mật mã Caesar là gì – điều này thực sự sẽ giúp chúng tôi hiểu cách giải nó bằng các hàm
Trong video, tôi sẽ hướng dẫn bạn tất cả những gì bạn cần bao gồm cả cách triển khai nó
Bước 1. Mô tả Mật mã Caesar
- Mật mã Caesar là một mật mã thay thế đơn giản, được giới hạn chỉ dịch chuyển các ký tự theo số cố định
- Hãy lấy một ví dụ
- Hãy tưởng tượng bạn nhận được tin nhắn. BRX DUH DZHVRPH. Những gì để làm cho ra khỏi nó. Làm cho không có ý nghĩa
- Nhưng điều gì sẽ xảy ra nếu chúng ta nhận được sự trợ giúp từ sơ đồ này
Như bạn thấy, chữ B là chữ cái đầu tiên trong thông báo mật mã của chúng tôi (BRX DUH DZHVRPH)
Trên đó chúng ta tìm thấy B ở dòng màu đỏ và thấy chữ cái ở trên là Y ở dòng màu xanh lá cây. Điều đó có nghĩa là chữ cái Y đã được mã hóa thành chữ cái B
Các bạn làm theo sẽ thấy đây là cách giải mã tin nhắn
Quá trình ngược lại sẽ mã hóa nó
Bước 2. Thực hiện chức năng mã hóa
Hãy triển khai hàm trợ giúp encrypt_char(char, key) để mã hóa một ký tự đơn, char, bằng khóa. Chức năng mã hóa này làm gì, nó có thực hiện quy trình trên cho chúng tôi không. Do đó, chúng tôi có chức năng này để thực hiện quá trình mã hóa một chữ cái
def encrypt_char(char, key): return chr(ord('A') + (ord(char) - ord('A') + key) % 26)
Sau đó, chúng ta có thể triển khai encrypt_message(tin nhắn, khóa), sử dụng hàm trợ giúp. Do đó, chức năng dưới đây đang thực hiện quá trình mã hóa toàn bộ tin nhắn
def encrypt_message(message, key): message = message.upper() cipher = '' for char in message: if char not in ' ,.': cipher += encrypt_char(char, key) else: cipher += char return cipher
Hãy thử nó
encrypt_message("you are awesome.", 3)
Kết quả là BRX DUH DZHVRPH
Bước 3. Thực hiện chức năng giải mã
Điều này khá giống
def decrypt_char(char, key): return chr(ord('A') + (ord(char) - ord('A') + 26 - key) % 26) def decrypt_message(cipher, key): cipher = cipher.upper() message = '' for char in cipher: if char not in ' ,.': message += decrypt_char(char, key) else: message += char return message
Hãy thử nó
decrypt_message('BRX DUH DZHVRPH.', 3)
Sau đó, bạn nhận được BẠN TUYỆT VỜI
Tiếp theo là gì?
tôi rất vui vì bạn đã hỏi
Nếu đây là thứ bạn thích và bạn muốn bắt đầu với Python, thì đây là một phần của khóa học video MIỄN PHÍ kéo dài 8 giờ với các giải thích đầy đủ, các dự án ở từng cấp độ và các giải pháp được hướng dẫn
Khóa học được cấu trúc với các tài nguyên sau để cải thiện trải nghiệm học tập của bạn
- 17 bài học video hướng dẫn bạn mọi thứ bạn cần biết để bắt đầu với Python
- 34 Jupyter Notebook với mã bài học và dự án
- Sách điện tử hơn 70 trang MIỄN PHÍ với tất cả kiến thức từ các bài học
Xem toàn bộ trang khóa học MIỄN PHÍ tại đây
Học Python
Python Giống như một chuyên gia?
Nếu bạn nghiêm túc về việc học Python, không có gì tốt hơn là cam kết mạnh mẽ. Theo yêu cầu của bạn, chúng tôi đã tạo phiên bản cải tiến của khóa học trực tuyến miễn phí phổ biến này
Trong hướng dẫn này, chúng tôi sẽ cố gắng tìm giải pháp cho Cách tạo mật mã Caesar bằng Python thông qua lập trình. Đoạn mã sau minh họa điều này
import string import sys # The word to be encoded shifts by 5 to the right, while the word to be decoded shifts by 5 to the left. shift = 5 print(' Caesar Cipher '.center(40, '*')) choices = ['e', 'd'] user_choice = input('Do you wish to [e]ncode, [d]ecode, or quit (any other letter)?: ').lower() if user_choice not in choices: print('Program closed.') sys.exit() word = input('Enter the word: ') # ENCODING FUNCTION def encode_words(words, shifts): """This encodes a word using Caesar cipher.""" # Variable for storing the encoded word. encoded_word = '' for i in words: # Check for space and tab if ord(i) == 32 or ord(i) == 9: shifted_word = ord(i) # Check for punctuations elif i in string.punctuation: shifted_word = ord(i) # Check if the character is lowercase or uppercase elif i.islower(): shifted_word = ord(i) + shifts # Lowercase spans from 97 to 122 (decimal) on the ASCII table # If the chars exceeds 122, we get the number it uses to exceed it and add to 96 (the character before a) if shifted_word > 122: shifted_word = (shifted_word - 122) + 96 else: shifted_word = ord(i) + shifts # Uppercase spans from 65 to 90 (decimal) on the ASCII table # If the chars exceeds 90, we get the number it uses to exceed it and add to 64 (the character before A) if shifted_word > 90: shifted_word = (shifted_word - 90) + 64 encoded_word = encoded_word + chr(shifted_word) print('Word:', word) print('Encoded word:', encoded_word) # DECODING FUNCTION def decode_words(words, shifts): """This decodes a word using Caesar cipher""" # Variable for storing the decoded word. decoded_word = '' for i in words: # Check for space and tab if ord(i) == 32 or ord(i) == 9: shifted_word = ord(i) # Check for punctuations elif i in string.punctuation: shifted_word = ord(i) # Check if the character is lowercase or uppercase elif i.islower(): shifted_word = ord(i) - shifts # If the char is less 122, we get difference subtract from 123 (the character after z) if shifted_word < 97: shifted_word = (shifted_word - 97) + 123 else: shifted_word = ord(i) - shifts # If the char is less 65, we get difference and subtract from 91 (the character after Z) if shifted_word < 65: shifted_word = (shifted_word - 65) + 91 decoded_word = decoded_word + chr(shifted_word) print('Word:', word) print('Decoded word:', decoded_word) def encode_decode(words, shifts, choice): """This checks if the users want to encode or decode, and calls the required function.""" if choice == 'e': encode_words(words, shifts) elif choice == 'd': decode_words(words, shifts) encode_decode(word, shift, user_choice)Có rất nhiều ví dụ thực tế cho thấy cách khắc phục sự cố Cách tạo mật mã Caesar bằng Python
Làm cách nào để bạn tạo Mật mã Caesar bằng Python?
Làm thế nào để bạn viết một thuật toán cho mật mã Caesar?
Nó có nghĩa là tin nhắn được mã hóa bằng phương pháp này có thể dễ dàng giải mã. Văn bản thô. Đó là một tin nhắn đơn giản được viết bởi người dùng. Dn(x) = (xi - n) mod 26
Làm thế nào để bạn viết mã mã hóa bằng Python?
bước
- Nhập thư viện rsa
- Tạo khóa công khai và khóa riêng với rsa
- Mã hóa chuỗi thành chuỗi byte
- Sau đó mã hóa chuỗi byte bằng khóa chung
- Sau đó, chuỗi được mã hóa có thể được giải mã bằng khóa riêng
- Khóa công khai chỉ có thể được sử dụng để mã hóa và khóa riêng tư chỉ có thể được sử dụng để giải mã
Python có thể được sử dụng để mã hóa không?
con trăn. Python là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới. Đó là một ngôn ngữ có mục đích chung, có nghĩa là nó được sử dụng cho nhiều nhiệm vụ, bao gồm cả mật mã. Nó cũng thân thiện với người mới bắt đầu, vì vậy đây là một nơi tuyệt vời để bắt đầu nếu bạn mới viết mã. 03-Nov-2021
Mật mã Caesar trong Python là gì?
Kỹ thuật mật mã Caesar là phương pháp đơn giản và dễ dàng của kỹ thuật mã hóa. Nó là loại mật mã thay thế đơn giản. Mỗi chữ cái của văn bản thuần túy được thay thế bằng một chữ cái với một số vị trí cố định xuống theo bảng chữ cái
Làm thế nào để bạn tạo một mã mật mã?
Yêu cầu con bạn làm theo các bước đơn giản sau để sử dụng Mật mã Caesar
- Viết ra toàn bộ bảng chữ cái trong một dòng
- Chọn một số làm số tiền "xoay vòng" của bạn
- Dưới dòng đầu tiên của bạn, bắt đầu từ chữ cái bạn "xoay vòng", viết lại bảng chữ cái
- Quyết định thông điệp của bạn sẽ nói gì và viết nó ra một tờ giấy
Toán học nào được sử dụng trong mật mã Caesar?
Mã hóa có thể được biểu diễn bằng cách sử dụng số học mô-đun bằng cách trước tiên chuyển đổi các chữ cái thành số, theo sơ đồ, A = 0, B = 1,…, Z = 25. Mã hóa một chữ cái bằng một ca n có thể được mô tả bằng toán học như. 25-Tháng 9-2022
Mật mã khó giải nhất là gì?
Hãy bắt đầu bẻ khóa bằng cách đếm ngược một số mã và mật mã khó và thú vị nhất thế giới
- Người đàn ông Somerton của Úc
- Câu đố 'Khóa thời gian' bằng mật mã MIT - LCS35
- mật mã dorabella
- Bản thảo Voynich
- Cuốn sách mật mã
- Kryptos tại trụ sở CIA
- sát thủ cung hoàng đạo
- Giấy tờ Beale.
Khóa nào được sử dụng trong mật mã Caesar?
Mật mã Caesar dịch chuyển tất cả các chữ cái trong một đoạn văn bản theo một số vị trí nhất định. Chìa khóa cho mật mã này là một chữ cái đại diện cho số vị trí cho sự thay đổi. Vì vậy, ví dụ: phím D có nghĩa là “chuyển 3 vị trí” và phím M có nghĩa là “chuyển 12 vị trí”