python實(shí)現(xiàn)字符串加密成純數(shù)字
本文實(shí)例為大家分享了python實(shí)現(xiàn)字符串加密成純數(shù)字的具體代碼,供大家參考,具體內(nèi)容如下
說(shuō)明:
該加密算法僅僅是做一個(gè)簡(jiǎn)單的加密,安全性就不談了,哈哈.
算法流程:
1.字符串以u(píng)tf8編碼成字節(jié)數(shù)組
2.把每一個(gè)字節(jié)轉(zhuǎn)換成十進(jìn)制數(shù)字字符串('0'~'255')
3.在每個(gè)十進(jìn)制數(shù)字字符串之前加上一個(gè)長(zhǎng)度位(長(zhǎng)度位固定只占1個(gè)字符)
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'))
#把每個(gè)字節(jié)轉(zhuǎn)換成數(shù)字字符串
strList=[str(byte) for byte in data]
#給每個(gè)數(shù)字字符串前面加一個(gè)長(zhǎng)度位
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]))
#去掉長(zhǎng)度位,還原成字典
index=0
strList=[]
while True:
#取長(zhǎng)度位
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')
測(cè)試:
if __name__ == '__main__':
ret=encrypt('id:123,time:7200,key:123456789987654321','1938762450')
print('密文:',ret)
ret=decrypt(ret,'1938762450')
print('原文:',ret)
運(yùn)行結(jié)果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于OpenCV python3實(shí)現(xiàn)證件照換背景的方法
這篇文章主要介紹了基于OpenCV python3實(shí)現(xiàn)證件照換背景的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Python實(shí)現(xiàn)感知器模型、兩層神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)感知器模型、兩層神經(jīng)網(wǎng)絡(luò),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
好用的Python編輯器WingIDE的使用經(jīng)驗(yàn)總結(jié)
WingIDE是個(gè)專為python程序語(yǔ)言設(shè)計(jì)的集成開(kāi)發(fā)環(huán)境。從1999年起,Wingware公司便開(kāi)始專注于python開(kāi)發(fā),目前WingIDE已經(jīng)是著名的python開(kāi)發(fā)框架,面向項(xiàng)目風(fēng)格的 IDE 對(duì)于大型產(chǎn)品非常有用, 是個(gè)很有前途的開(kāi)發(fā)環(huán)境。2016-08-08
Python通過(guò)pytesseract庫(kù)實(shí)現(xiàn)識(shí)別圖片中的文字
Pytesseract是一個(gè)Python的OCR庫(kù),它可以識(shí)別圖片中的文本并將其轉(zhuǎn)換成文本形式。本文就來(lái)用pytesseract庫(kù)實(shí)現(xiàn)識(shí)別圖片中的文字,感興趣的可以了解一下2023-05-05

