Chương trình mật mã caesar trong python

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
Chương trình mật mã caesar trong python
Chương trình mật mã caesar trong python
Chương trình mật mã caesar trong python

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í”

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.

Mật mã Caesar giải thích với ví dụ là gì?

Đó là một loại mật mã thay thế trong đó mỗi chữ cái trong bản rõ được thay thế bằng một chữ cái ở một số vị trí cố định trong bảng chữ cái . 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.

Thuật toán của mật mã Caesar là gì?

Thuật toán mật mã Caesar là thuật toán bằng cách thay thế vị trí chữ cái đầu tiên bằng bảng chữ cái hay còn gọi là thuật toán ROT3 . Thuật toán chuyển vị bằng cách thay đổi vị trí của tin nhắn văn bản sẽ được mã hóa bằng cách sử dụng biểu mẫu nhất định[10].