日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

md5加密解密代码_Python内置方法实现基于秘钥的信息加解密

發(fā)布時(shí)間:2025/3/12 python 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 md5加密解密代码_Python内置方法实现基于秘钥的信息加解密 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊關(guān)注州的先生 精彩不容錯(cuò)過(guò)

在實(shí)際編程開發(fā)中,我們會(huì)使用到各類的加密算法來(lái)對(duì)數(shù)據(jù)和信息進(jìn)行加密。比如密碼中比較常見的MD5加密,以及AES加密等等。對(duì)于密碼認(rèn)證來(lái)說(shuō),MD5加密是比較適合的,因?yàn)槠洳恍枰佑|到明文的數(shù)據(jù),只需要比對(duì)MD5加密后的哈希值就能判斷數(shù)據(jù)是否一致;而對(duì)于一些在加密后進(jìn)行解密的數(shù)據(jù)而言,AES則更加的常用。在Python中實(shí)現(xiàn)AES算法需要借助的第三方庫(kù)Crypto,其在各個(gè)操作系統(tǒng)上的安裝方法有些許復(fù)雜,所以對(duì)于簡(jiǎn)單的使用有點(diǎn)殺雞用牛刀的意思。在Mrdoc的開發(fā)過(guò)程中,我們就遇到了這樣的問(wèn)題。一方面不想為了一個(gè)小小的功能增加一個(gè)安裝容易出錯(cuò)的第三方庫(kù),一方面又有對(duì)用戶輸入的第三方密碼進(jìn)行加密和解密的需求。最終,我們采用的Python內(nèi)置的方法實(shí)現(xiàn)了。

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

在這個(gè)秘鑰加解密方案中,我們需要設(shè)置一個(gè)秘鑰,用來(lái)對(duì)數(shù)據(jù)進(jìn)行加密和解密。在Mrdoc中,我們借助Django項(xiàng)目中的SECRET_KEY變量來(lái)作為秘鑰。原則就是,盡量復(fù)雜且長(zhǎng):key = 'djq%5cu#-jeq15abg$z9_i#_w=$o88m!*alpbedlbat8cr74sd'接下來(lái)對(duì)數(shù)據(jù)的加密和解密,我們都需要使用到這個(gè)秘鑰。對(duì)數(shù)據(jù)進(jìn)行加密我們的加密邏輯其實(shí)很簡(jiǎn)單,核心是一個(gè)Python內(nèi)置方法ord(),這個(gè)方法用于返回一個(gè)單字節(jié)的ASCII碼字符的Unicode碼位。加密邏輯步驟如下:
  • 1、創(chuàng)建一個(gè)空字符串變量,作為加密字符的初始值;

  • 2、使用zip()方法同時(shí)遍歷數(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”使用這個(gè)加密方法進(jìn)行加密,最終會(huì)得到如下所示的加密字符串:'222_215_218_152_169_200_231_'

對(duì)數(shù)據(jù)進(jìn)行解密

與加密的邏輯相反,我們需要把Unicode碼位還原為單字節(jié)的ASCII碼字符,這需要利用到Python的內(nèi)置方法chr()。所以數(shù)據(jù)解密的步驟如下所示:
  • 1、定義一個(gè)空的字符串變量,作為解密數(shù)據(jù)的初始值;

  • 2、使用zip()方法同時(shí)遍歷加密后的數(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ù)解密出來(lái)。我們用一個(gè)完整的代碼來(lái)測(cè)試一下:# 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)運(yùn)行上述代碼,我們會(huì)得到如下圖所示的結(jié)果:

最后

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

▼點(diǎn)擊“

萬(wàn)水千山總是情,點(diǎn)個(gè)“在看”行不行▼?

總結(jié)

以上是生活随笔為你收集整理的md5加密解密代码_Python内置方法实现基于秘钥的信息加解密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美激情视频一区二区三区在线播放 | 午夜激情毛片 | 91在线视频导航 | 嫩草影院黄 | 99爱这里只有精品 | 免费在线视频一区二区 | 欧美成人一二三区 | 处破女av一区二区 | 日本在线视频中文字幕 | 国产精品免费一区 | 无码专区久久综合久中文字幕 | 黄在线观看 | 香蕉视频免费看 | 欧美r级在线观看 | 涩里番在线观看 | 久久精品国产99精品国产亚洲性色 | 91九色pron| 久久久全国免费视频 | 国产日韩亚洲欧美 | 亚洲综合在线五月 | 欧美巨大另类极品videosbest | 日韩精品在线观看AV | 欧美一区二区三区四区视频 | 五月天激情综合网 | 欧美影视一区 | 少妇色综合 | 在线视频观看国产 | 日本一区二区三区免费看 | 日韩免费一区二区三区 | 久久影音先锋 | 三年中文免费观看大全动漫 | 日韩欧美99| 男女啪啪无遮挡 | 亚欧av在线| 亚洲熟悉妇女xxx妇女av | 欧美成人精品一区二区三区在线观看 | 手机看黄色 | 国产精品久久久久久妇女6080 | 亚洲AV无码成人国产精品色 | 激情五月激情综合 | 最新中文字幕免费 | 三级黄色网络 | 青青色在线视频 | 亚洲精品国产精品国自产观看浪潮 | 亚洲成人看片 | 无码人妻aⅴ一区二区三区 国产高清一区二区三区四区 | 日韩一区精品 | 天天草天天干 | 精品欧美一区二区三区久久久 | 久久精品屋 | jizz亚洲女人高潮大叫 | 久久天堂av综合合色蜜桃网 | 打屁股疼的撕心裂肺的视频 | 亚洲一区日韩精品 | 污污在线免费观看 | jizz处女| av卡一卡二 | 爽爽影院在线免费观看 | 日韩成人不卡 | 国产片一区二区 | 美女视频国产 | 四虎影视在线 | 国产天天操 | 丁香六月婷婷激情 | 中文黄色片 | 91污在线观看 | 国产人妖ts重口系列网站观看 | 嫩草视频免费观看 | 日韩一级片免费 | 成人国产精品免费 | 免费伊人 | 理论片琪琪午夜电影 | 欧美第四页| 69性视频 | 亚洲午夜精品一区二区 | 91叉叉叉| 99爱精品| 久久国产视频一区 | 一级黄色a视频 | 二色av| 久久综合狠狠 | 韩国av电影网站 | 国产精品人人妻人人爽人人牛 | 老熟妻内射精品一区 | 久久综合亚洲色hezyo国产 | 久久av资源 | 国产大片一区二区 | 毛片视频播放 | 天天干天天看 | 国产免费叼嘿网站免费 | 都市激情av | 丝袜诱惑一区二区 | 欧美巨乳在线观看 | 岛国大片在线免费观看 | 在线视频一区二区 | 国产精品社区 | 高清国产视频 | 国产精品福利一区二区三区 | 成人日韩视频 |