失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php凯撒密码解密 凯撒加密解密.py

php凯撒密码解密 凯撒加密解密.py

时间:2022-04-16 16:35:41

相关推荐

php凯撒密码解密 凯撒加密解密.py

# -*- coding: utf-8 -*-

class CaesarCipher(object):

"""

凯撒加密解密

"""

def __crypt(self, char, key):

"""

对单个字母加密,偏移

@param char: {str} 单个字符

@param key: {num} 偏移量

@return: {str} 加密后的字符

"""

if not char.isalpha():

return char

else:

base = "A" if char.isupper() else "a"

return chr((ord(char) - ord(base) + key) % 26 + ord(base))

def encrypt(self, char, key):

"""

对字符加密

"""

return self.__crypt(char, key)

def decrypt(self, char, key):

"""

对字符解密

"""

return self.__crypt(char, -key)

def __crypt_text(self, func, text, key):

"""

对文本加密

@param char: {str} 文本

@param key: {num} 偏移量

@return: {str} 加密后的文本

"""

lines = []

for line in text.split("\n"):

words = []

for word in line.split(" "):

chars = []

for char in word:

chars.append(func(char, key))

words.append("".join(chars))

lines.append(" ".join(words))

return "\n".join(lines)

def encrypt_text(self, text, key):

"""

对文本加密

"""

return self.__crypt_text(self.encrypt, text, key)

def decrypt_text(self, text, key):

"""

对文本解密

"""

return self.__crypt_text(self.decrypt, text, key)

if __name__ == '__main__':

plain = """

you know? I love you!

"""

key = 3

cipher = CaesarCipher()

x =cipher.encrypt_text(plain, key)

# 加密

print(x)

# brx nqrz? L oryh brx!

# 解密

print(cipher.decrypt_text(x, key))

# you know? I love you!

一键复制

编辑

Web IDE

原始数据

按行查看

历史

如果觉得《php凯撒密码解密 凯撒加密解密.py》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。