Python 簡單的加密和解密
阿新 • • 發佈:2019-01-05
今天來說說簡單的加密和解密吧,我們在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)
寫好啦,我們試驗一下,點選run將這個程式跑起來:
大家舉一反三看看中文怎麼解密加密哦。。。