使用 Python 中的 Vigenere 密码加密字符串的程序

pythonserver side programmingprogramming更新于 2026/1/8 18:20:17

假设我们有一个小写字母字符串 text,还有另一个名为 key 的字符串。我们必须找到一个新字符串,其中 text[i] 中的每个字母都移动到右侧,偏移量为 key[i]。这里偏移量表示 key[i] 在字母表中的位置(A=0、B=1 等)。如果字母溢出,它会被包裹在另一侧。

因此,如果输入为 text = "code", key = "team",则输出为 "vsdq"

为了解决这个问题,我们将遵循以下步骤 −

  • cip := a new list
  • start := 'a' 的 ASCII
  • 对于来自 text 的每个 l 和来自 key 的每个 k,执行
    • shift := (k 的 ASCII) - start
    • pos := start +((l 的 ASCII) - start + shift) mod 26
    • 在 pos 末尾插入字符cip
  • 连接 cip 的字符串并返回

让我们看看下面的实现以便更好地理解 −

示例

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([l for l in cip])
ob = Solution()
text = "code"
key = "team"
print(ob.solve(text, key))

输入

"code", "team"

输出

vsdq

相关文章


有用资源