Python中简单的凯撒密码加密代码

1 投票
1 回答
3862 浏览
提问于 2025-04-17 10:04

可能重复的问题:
使用Python的凯撒密码,能帮我一下吗

def affine (a, b):
    for i in range(26):
        print chr(i+65) + ": " + chr (((a*i+b)%26)+65)

我遇到了一些问题。我该如何用“Hello world”这个信息来加密呢?

还有,怎么解密一条信息呢?

1 个回答

0

一种可读性强、虽然有点长的方法是这样的:

   def encript(message, offset):
       result = ""
       for letter in message:
           if letter.isalpha():
               new_letter = chr(ord(letter) + offset)
               if (new_letter > "Z" and letter.isupper()) or (new_letter > "z" and letter.islower()):
                    new_letter = chr(ord(new_letter) - 26)
           else:
               new_letter = letter
           result += new_letter
        return result

而一个简洁的写法可以这样写:

>>> encript = lambda x, offset: "".join(chr(ord(le) + ((offset - (26 if (ord(le.upper()) + offset > ord("Z") )  else 0 ) ) if le.isalpha() else 0))  for le in x )
>>> encript("IBM 9000", -1)
'HAL 9000'

撰写回答