最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
怎么在Python中實現(xiàn)秘鑰加解密字符串-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎么在Python中實現(xiàn)秘鑰加解密字符串,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元武平做網(wǎng)站,已為上家服務(wù),為武平各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

一、設(shè)置一個秘鑰

在這個秘鑰加解密方案中,我們需要設(shè)置一個秘鑰,用來對數(shù)據(jù)進行加密和解密。在Mrdoc中,我們借助Django項目中的SECRET_KEY變量來作為秘鑰。原則就是,盡量復(fù)雜且長:

key = 'djq%5cu#-jeq15abg$z9_i#_w=$o88m!*alpbedlbat8cr74sd'

接下來對數(shù)據(jù)的加密和解密,我們都需要使用到這個秘鑰。

二、對數(shù)據(jù)進行加密

我們的加密邏輯其實很簡單,核心是一個Python內(nèi)置方法ord(),這個方法用于返回一個單字節(jié)的ASCII碼字符的Unicode碼位。加密邏輯步驟如下:

1、創(chuàng)建一個空字符串變量,作為加密字符的初始值;
2、使用zip()方法同時遍歷數(shù)據(jù)字符串和秘鑰;
3、使用ord()方法分別獲取遍歷的數(shù)據(jù)字符和秘鑰字符的Unicode碼位,并將其相加,得到此數(shù)據(jù)字符的加密字符;
4、將得到的加密字符追加到空字符串變量中;
5、返回最終的空字符串變量;

其代碼如下所示:

# 加密
def enctry(s):
 k = 'djq%5cu#-jeq15abg$z9_i#_w=$o88m!*alpbedlbat8cr74sd'
 encry_str = ""
 for i,j in zip(s,k):
  # i為字符,j為秘鑰字符
  temp = str(ord(i)+ord(j))+'_' # 加密字符 = 字符的Unicode碼 + 秘鑰的Unicode碼
  encry_str = encry_str + temp
 return encry_str

如果我們將字符串”zmister”使用這個加密方法進行加密,最終會得到如下所示的加密字符串:

'222_215_218_152_169_200_231_'

三、對數(shù)據(jù)進行解密

與加密的邏輯相反,我們需要把Unicode碼位還原為單字節(jié)的ASCII碼字符,這需要利用到Python的內(nèi)置方法chr()。所以數(shù)據(jù)解密的步驟如下所示:

1、定義一個空的字符串變量,作為解密數(shù)據(jù)的初始值;
2、使用zip()方法同時遍歷加密后的數(shù)據(jù)和秘鑰;
3、將加密數(shù)據(jù)字符減去秘鑰字符的Unicode碼位,得到原始數(shù)據(jù)的Unicode碼位,然后使用chr()方法將其還原為ASCII單字節(jié)字符;
4、將得到的解密字符追加到空字符串變量中;
5、返回解密字符

其代碼如下所示:

# 解密
def dectry(p):
 k = 'djq%5cu#-jeq15abg$z9_i#_w=$o88m!*alpbedlbat8cr74sd'
 dec_str = ""
 for i,j in zip(p.split("_")[:-1],k):
  # i 為加密字符,j為秘鑰字符
  temp = chr(int(i) - ord(j)) # 解密字符 = (加密Unicode碼字符 - 秘鑰字符的Unicode碼)的單字節(jié)字符
  dec_str = dec_str+temp
 return dec_str

這樣,我們就能把加密的數(shù)據(jù)解密出來。我們用一個完整的代碼來測試一下:

# coding:utf-8
# @文件: utils.py
# @創(chuàng)建者:州的先生
# #日期:2019/12/8
# 博客地址:zmister.com

# 加密
def enctry(s):
 k = 'djq%5cu#-jeq15abg$z9_i#_w=$o88m!*alpbedlbat8cr74sd'
 encry_str = ""
 for i,j in zip(s,k):
  # i為字符,j為秘鑰字符
  temp = str(ord(i)+ord(j))+'_' # 加密字符 = 字符的Unicode碼 + 秘鑰的Unicode碼
  encry_str = encry_str + temp
 return encry_str

# 解密
def dectry(p):
 k = 'djq%5cu#-jeq15abg$z9_i#_w=$o88m!*alpbedlbat8cr74sd'
 dec_str = ""
 for i,j in zip(p.split("_")[:-1],k):
  # i 為加密字符,j為秘鑰字符
  temp = chr(int(i) - ord(j)) # 解密字符 = (加密Unicode碼字符 - 秘鑰字符的Unicode碼)的單字節(jié)字符
  dec_str = dec_str+temp
 return dec_str

data = "zmister.com"
print("原始數(shù)據(jù)為:",data)
enc_str = enctry(data)
print("加密數(shù)據(jù)為:",enc_str)
dec_str = dectry(enc_str)
print("解密數(shù)據(jù)為:",dec_str)

運行上述代碼,我們會得到如下圖所示的結(jié)果:

怎么在Python中實現(xiàn)秘鑰加解密字符串 

四、最后

可以發(fā)現(xiàn),這個方法對于一般性的數(shù)據(jù)加解密而言,還是比較簡單和便捷的,唯一需要考量的是秘鑰的復(fù)雜性和安全性,如果有更好地實現(xiàn)方法,歡迎留言討論:)

ps:Python利用字符串自帶函數(shù)實現(xiàn)加密和解密

字符串自帶的簡單加密 

encode = str.maketrans('eilouvy','1234567')#加密方式 
words = 'iloveyou' 
encode_words = words.translate(encode)#按encode加密方式加密 
print(encode_words) #輸出23461745 
dedoed = str.maketrans('1234567','eilouvy')#解密方式 
dedoed_words = encode_words.translate(dedoed)#按decode解密方式解密 
print(dedoed_words)#輸出iloveyou

python主要應(yīng)用領(lǐng)域有哪些

1、云計算,典型應(yīng)用OpenStack。2、WEB前端開發(fā),眾多大型網(wǎng)站均為Python開發(fā)。3.人工智能應(yīng)用,基于大數(shù)據(jù)分析和深度學(xué)習(xí)而發(fā)展出來的人工智能本質(zhì)上已經(jīng)無法離開python。4、系統(tǒng)運維工程項目,自動化運維的標(biāo)配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數(shù)據(jù)分析。

上述就是小編為大家分享的怎么在Python中實現(xiàn)秘鑰加解密字符串了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


新聞標(biāo)題:怎么在Python中實現(xiàn)秘鑰加解密字符串-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://fisionsoft.com.cn/article/hsohi.html