在Python中使用Vigenere密码对字符串进行加密的程序

假设我们有一个小写字母字符串文本,还有另一个称为key的字符串。我们必须找到一个新的字符串,其中text [i]中的每个字母都使用offset键[i]移到右侧。这里,由key [i]在字母表中的位置表示的偏移量(A = 0,B = 1等)。如果字母溢出,则将其包裹在另一侧。

因此,如果输入类似于text =“ code”,key =“ team”,则输出将为“ vsdq”

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

  • cip:=一个新列表

  • 开始:='a'的ASCII

  • 对于文本中的每个l和键中的每个k

    • shift:=(k的ASCII)-开始

    • pos:=开始+((l的ASCII)-开始+移位)mod 26

    • 在cip的末尾插入pos字符

  • 加入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
猜你喜欢