Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình mã hóa chuỗi bằng mật mã Vigenere trong Python


Cho chuỗi chữ thường text và khóa key. Mã hóa bằng cách dịch chuyển mỗi ký tự text[i] sang phải theo offset của key[i] (A=0, B=1,...). Nếu tràn thì vòng lại.

Ví dụ, text = "code", key = "team", đầu ra "vsdq".

Các bước giải quyết:

  • cip := danh sách rỗng.
  • start := ord('a').
  • Duyệt đồng thời l từ text và k từ key:
    • shift = ord(k) - start.
    • pos = start + (ord(l) - start + shift) % 26.
    • Thêm chr(pos) vào cip.
  • Nối các ký tự trong cip và trả về.

Ví dụ minh họa

class Solution:
    def solve(self, text, key):
        cip = []
        start = ord('a')
        for l, k in zip(text, key):
            shift = ord(k) - start
            pos = start + (ord(l) - start + shift) % 26
            cip.append(chr(pos))
        return ''.join(cip)

ob = Solution()
text = "code"
key = "team"
print(ob.solve(text, key))

Đầu vào

"code", "team"

Đầu ra

vsdq