python實(shí)現(xiàn)字符串加密成純數(shù)字
本文實(shí)例為大家分享了python實(shí)現(xiàn)字符串加密成純數(shù)字的具體代碼,供大家參考,具體內(nèi)容如下
說明:
該加密算法僅僅是做一個簡單的加密,安全性就不談了,哈哈.
算法流程:
1.字符串以utf8編碼成字節(jié)數(shù)組
2.把每一個字節(jié)轉(zhuǎn)換成十進(jìn)制數(shù)字字符串('0'~'255')
3.在每個十進(jìn)制數(shù)字字符串之前加上一個長度位(長度位固定只占1個字符)
4.進(jìn)行數(shù)字替換,例如:(0-1,1-9,2-3,3-8,4-7,5-6,6-2,7-4,8-5,9-0)
代碼實(shí)現(xiàn):
加密:
#加密 def encrypt(srcStr,password='1938762450'): #將字符串轉(zhuǎn)換成字節(jié)數(shù)組 data=bytearray(srcStr.encode('utf-8')) #把每個字節(jié)轉(zhuǎn)換成數(shù)字字符串 strList=[str(byte) for byte in data] #給每個數(shù)字字符串前面加一個長度位 strList=[str(len(s))+s for s in strList] #進(jìn)行數(shù)字替換 for index0 in range(len(strList)): tempStr = "" for index in range(len(strList[index0])): tempStr+=password[int(strList[index0][index])] strList[index0]=tempStr return "".join(strList)
解密:
#解密 def decrypt(srcStr,password='1938762450'): #數(shù)字替換還原 tempStr="" for index in range(len(srcStr)): tempStr+=str(password.find(srcStr[index])) #去掉長度位,還原成字典 index=0 strList=[] while True: #取長度位 length=int(tempStr[index]) #取數(shù)字字符串 s=tempStr[index+1:index+1+length] #加入到列表中 strList.append(s) #增加偏移量 index+=1+length #退出條件 if index>=len(tempStr): break data=bytearray(len(strList)) for i in range(len(data)): data[i]=int(strList[i]) return data.decode('utf-8')
測試:
if __name__ == '__main__': ret=encrypt('id:123,time:7200,key:123456789987654321','1938762450') print('密文:',ret) ret=decrypt(ret,'1938762450') print('原文:',ret)
運(yùn)行結(jié)果:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python將文字轉(zhuǎn)成語音并讀出來的實(shí)例詳解
今天小編就為大家分享一篇Python將文字轉(zhuǎn)成語音并讀出來的實(shí)例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python實(shí)現(xiàn)圖像的二進(jìn)制與base64互轉(zhuǎn)
這篇文章主要為大家介紹了如何在Python中使用OpenCV從而實(shí)現(xiàn)圖像轉(zhuǎn)base64編碼、圖像轉(zhuǎn)二進(jìn)制編碼、二進(jìn)制轉(zhuǎn)圖像等功能,感興趣的可以跟上小編一起學(xué)習(xí)一下2022-03-03Python調(diào)用百度AI實(shí)現(xiàn)人像分割詳解
本文主要介紹了如何通過Python調(diào)用百度AI從而實(shí)現(xiàn)人像的分割與合成,文中的示例代碼對我們的工作或?qū)W習(xí)有一定的幫助,需要的朋友可以參考一下2021-12-12Python經(jīng)驗(yàn)總結(jié):兩種Type?Error問題
這篇文章主要介紹了Python經(jīng)驗(yàn)總結(jié):兩種Type?Error問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Python中時間datetime的處理與轉(zhuǎn)換用法總結(jié)
今天小編就為大家分享一篇關(guān)于Python中時間datetime的處理與轉(zhuǎn)換用法總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02Python利用matplotlib繪制約數(shù)個數(shù)統(tǒng)計(jì)圖示例
這篇文章主要介紹了Python利用matplotlib繪制約數(shù)個數(shù)統(tǒng)計(jì)圖,結(jié)合實(shí)例形式詳細(xì)分析了Python使用matplotlib進(jìn)行統(tǒng)計(jì)圖繪制的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11Python try-except-else-finally的具體使用
本文主要介紹了Python try-except-else-finally的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08