Python 简单的加密和解密

今天来说说简单的加密和解密吧,我们在PyCharm中开启一个新的project,起名随意,之后创建一个python file名字就叫做encryption.py吧.

首先我们知道在python中,ord()函数就是用来返回单个字符的ASCII值(0-255)或者unicode数值, chr()则相反,举个例子:
Python 简单的加密和解密_第1张图片
从上面的例子可以看出小写’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)

写好啦,我们试验一下,点击run将这个程序跑起来:
Python 简单的加密和解密_第2张图片

大家举一反三看看中文怎么解密加密哦。。。

你可能感兴趣的:(python)