时隔九个月零二十二天15小时30分46秒,我,重新回归了!!!!!!!!!!!
而今天,我给大家带来一个文字加密解密器。
废话不多说,上代码!
def jiami():
shuru = input("拼音(每个字中间加空格):").split()
v = ""
for j in shuru:
for i in j:
n = ord(i)
if len(shuru)%2==0:
x = bin(n)[2:]
else:
x = oct(n)[2:]
v += x
v += " "
v += "|"
print(v.rstrip(" "))
def jiemi():
shuru = input("加密后的加密码:").split("|")
v = ""
for i in shuru:
words = i.split()
for j in words:
if j:
if int(j)>1:
z = int(j, 8)
else:
z = int(j,2)
v += chr(z)
v += " "
print(v.rstrip(" "))
while True:
m = input("加密还是解密?:")
if m == "加密" or m==1:
jiami()
elif m == "解密" or m==2:
jiemi()
else:
print("输入错误")
这个代码是如何实现加密解密的呢?
加密时,会通过文字在ascll码表中的位置转化成对应的数字
接着,再把数字转化成二进制或八进制(bin函数和oct函数)。
最后,把一个拼音的密文用空格隔开,把拼音用“|”隔开。
而解密就用对应的函数转化回来就行了。
隐藏彩蛋:
如果你在vscode中运行则会发生:
(每一次不一样)
所以,我“迫不得已”用上了 (远古版本)
感谢@Xculate 给我的安装包。
在一次偶然的运行时,我发现了一个原版python的“特性”。
没错!
如你所见,输入中文竟然没有报错!
放在vscode早就是“听取报错一片”了。
这到底是bug还是特性,来个大佬解释一下。
也不知道是不是版本太老了。
就到这里吧,散会!