今天来说说简单的加密和解密吧,我们在PyCharm中开启一个新的project,起名随意,之后创建一个python file名字就叫做encryption.py吧.
首先我们知道在python中,ord()函数就是用来返回单个字符的ASCII值(0-255)或者unicode数值, chr()则相反,举个例子:
从上面的例子可以看出小写’z’的unicode是3位数,但我们下面的代码解密时设置的是2位一解密,所以我们把122-23=99,这样就是两位数啦,解密的时候就可以统一两位一解。
具体我们来看在encryption.py中的代码:
#给字符串加密
str1= input("Input string to be encrypted: ") #我们可以自己输入一串或单个字母
secret_message = ''
for st in str1:
if st.isspace(): #判断输入的数据中是否有空格
secret_message += str(ord(st)) #空格直接转成unicode
elif st.isalpha(): #判断输入的数据是否为字母
secret_message += str(ord(st)-23) #把所有字母的unicode减去23
print("secret_message: ",secret_message)
#给字符串解密
norm_string =''
for i in range(0,len(secret_message)-1,2): #让系统两位两位一读
st_code = secret_message[i] + secret_message[i+1]
if st_code !='32': #空格的unicode是32,我们在加密的时候没有让它减23
norm_string += chr(int(st_code) +23) #其余的字母先加23再用chr()函数转
else:
norm_string += chr(int(st_code))
print("original message: ",norm_string)
大家举一反三看看中文怎么解密加密哦。。。