今天上课学习加密,一时兴起写成了脚本。
# 处理密钥(这里还有优化空间)
def secret_key(CONTENT, KEY):
# 获取空格位置
i = 0
blank = []
while i != -1:
i = CONTENT.find(" ", i + 1)
blank.append(i)
# 扩充key与明文长度相同
while len(KEY) < len(CONTENT):
for i in KEY:
KEY += i
if len(KEY) == len(CONTENT):
# print(KEY)
break
# 在key中填充空格,使之与明文格式形同
key_list = list(KEY)
for i in blank[:-1]:
key_list.insert(i, " ")
k = "".join(key_list)
# print(k)
return k
def ead(CONTENT, KEY, way, data_e=""):
k = secret_key(CONTENT, KEY)
# 解密
for i in range(len(CONTENT)):
if CONTENT[i] != " ":
star = ord(CONTENT[i])
tran = ord(k[i]) - 97
if way == 1:
data_e += chr(star + tran) if star + tran <= 122 else chr(star + tran - 26)
elif way == 2:
data_e += chr(star - tran) if star - tran > 97 or star < 97 else chr(star - tran + 26)
else:
data_e += " "
return data_e
def main():
content = input()
way = int(input("加密:1,解密:2:"))
key = input("请输入密钥:")
if way not in [1, 2]:
print("输入有误!")
else:
print(ead(content, key, way))
if __name__ == '__main__':
main()