文字的加密
替换式密码:又名取代加密法,是密码学中按规律将文字加密的一种方式。替换式密码中可以用不同字母数为一单元,例如每一个或两个字母为一单元,然后再作加密。密文接收者解密时需用原加密方式解码才可取得原文本。
简易替换密码:简易替换加密是一种以特定方式改变字母表上字母顺序,并以此顺序书写的加密方式。这样一张改变了字母次序的字母表即为‘替换表’。替换表可以以偏移或逆转(分别为凯撒密码和阿特巴希密码(英语:Atbash))或更复杂方式构造,此时称之为‘混合表’。
1、串到串(对照表)式的加密/解密直接顺序实现
alphabet_src = 'abcdefghijklmnopqrstuvwxyz'
alphabet_tar = 'defghijklmnopqrstuvwxyzabc'
src_str = 'I love you!'
encrypted_str= ''
for single_char in src_str:
if single_char in alphabet_src:
index = alphabet_src.index(single_char)
encrypted_str = encrypted_str + alphabet_tar[index]
else:
encrypted_str = encrypted_str + single_char
print(encrypted_str)
encrypted_str = 'I oryh brx!'
decrypted_str = ''
for single_char in encrypted_str:
if single_char in alphabet_src:
index = alphabet_tar.index(single_char)
decrypted_str = decrypted_str + alphabet_src[index]
else:
decrypted_str = decrypted_str + single_char
print(decrypted_str)
2、为了改善可读性、方便重用、隔离命名空间用函数实现
函数的好处:
- 改善可读性
- 方便重用
- 隔离命名空间
global alphabet_src, alphabet_tar
函数信息的说明:
- 参数及返回值类型说明原信息
def encrypt_it(src_str: str) -> str:
def decrypt_it(encrypted_str: str) -> str:
- 函数说明文档
'''用于对字符串进行简单替换加密
输入参数:
src_str: 原始文本内容
返回结果:加密/解密文本
'''
用断言验证加密/解密函数功能是否正常:
assert(decrypt_it(encrypt_it('abcdefghijklmnopqrstuvwxyz')) \
== 'abcdefghijklmnopqrstuvwxyz')
最终代码:
alphabet_src = 'abcdefghijklmnopqrstuvwxyz'
alphabet_tar = 'defghijklmnopqrstuvwxyzabc'
def encrypt_it(src_str: str) -> str:
'''用于对字符串进行简单替换加密
输入参数:
src_str:原始文本内容
返回结果:加密/解密文本
'''
global alphabet_src, alphabet_tar
encrypted_str = ''
for single_char in src_str:
if single_char in alphabet_src:
index = alphabet_src.index(single_char)
encrypted_str = encrypted_str + alphabet_tar[index]
else: