黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

python的一些加密方法及python 加密模塊

系統(tǒng) 2105 0

1base64

Python內(nèi)置的base64模塊可以實(shí)現(xiàn)base64、base32、base16、base85、urlsafe_base64的編碼解碼,python 3.x通常輸入輸出都是二進(jìn)制形式,2.x可以是字符串形式。

base64模塊的base64編碼、解碼調(diào)用了binascii模塊,binascii模塊中的b2a_base64()函數(shù)用于base64編碼,binascii模塊中的a2b_base64()函數(shù)用于base64解碼。

            
import base64
s = 'hello, world'
base64.b64encode(bytes(s, 'ascii'))
b'aGVsbG8sIHdvcmxk'
base64.b64decode(base64.b64encode(bytes(s, 'ascii')))
b'hello, world'
          

2.md5

Python2.x中有md5模塊,此模塊調(diào)用了hashlib模塊,python3.x已中將md5取掉,直接通過(guò)調(diào)用hashlib模塊來(lái)進(jìn)行md5。Python2.x可以直接使用unicode字符,但3.x中必須使用二進(jìn)制字節(jié)串。

            
import hashlib
m = hashlib.md5()
m.update(b'hello, world!')
m.hexdigest()
'3adbbad1791fbae3ec908894c4963870'
          

3.sha1

類(lèi)似于MD5

            
import hashlib
m = hashlib.sha1()
m.update(b'hello, world!')
m.hexdigest()
'1f09d30c707d53f3d16c530dd73d70a6ce7596a9'
          

4.crc32

計(jì)算指定內(nèi)容的crc32校驗(yàn)值,可以用zlib以及binascii模塊的crc32函數(shù).

            
import zlib
import binascii
s = b'hello, world!'
zlib.crc32(s)
1486392595
binascii.crc32(s)
1486392595
          

ps:下面看下Python之加密模塊

hashlib模塊

?加密方式以md5方式加密舉例
?是標(biāo)準(zhǔn)模塊,直接導(dǎo)入即可
?還有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串長(zhǎng)度更長(zhǎng),安全性更高

一、加密步驟

1、字符串先轉(zhuǎn)成二進(jìn)制類(lèi)型

使用.encode()方法轉(zhuǎn)成二進(jìn)制類(lèi)型

            
import hashlib
password='123456'
print(password.encode())#字符串不能直接加密,要先轉(zhuǎn)成二進(jìn)制類(lèi)型的才可以加密
#結(jié)果為:b'123456'
          

2、使用加密方法

使用.hexdigest()方法輸出加密后內(nèi)容

            
import hashlib
password='123456'
m=hashlib.md5(password.encode()) #先轉(zhuǎn)成二進(jìn)制,再加密
#print(dir(m)) #由于這個(gè)加密模塊pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用內(nèi)置函數(shù)dir(),使用這條語(yǔ)句就能打印出所有方法了
print(m.hexdigest())
          

3、打印加密后的內(nèi)容

使用dir()內(nèi)置函數(shù)顯示該變量的所有方法

由于該模塊pycharm無(wú)法提供提示方法,即輸入m“.”不出來(lái)方法,所以可以使用內(nèi)置函數(shù)dir(),將所有方法打印出來(lái)。

            
#print(dir(m)) #由于這個(gè)加密模塊pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用內(nèi)置函數(shù)dir(),使用這條語(yǔ)句就能打印出所有方法了
print(m.hexdigest())
          

二、加密相關(guān)

1、檢驗(yàn)加密結(jié)果

?由于md5方式加密完的字符串無(wú)論原字符串有多長(zhǎng)都是32位,因此可以使用len()方法檢驗(yàn)是否加密成功:

print(len(m.hexdigest())

2、md5加密之后是不可逆的
?網(wǎng)絡(luò)上可以解密的原理是撞庫(kù),即:將常用的密碼加密完存在數(shù)據(jù)庫(kù)里,然后直接搜庫(kù)。

如果輸入的加密后密碼碰巧數(shù)據(jù)庫(kù)里有,就能把對(duì)應(yīng)的加密前密碼返回給你,并不是真正的解密。

3、其他的加密方式

本文的加密方式以md5方式加密舉例,還有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串長(zhǎng)度更長(zhǎng),安全性更高。

            
m=hashlib.sha1(password.encode())#不同的加密方式
m=hashlib.sha224(password.encode()) #不同的加密方式
m=hashlib.sha256(password.encode()) #不同的加密方式
          

三、加鹽

?原理:

如果要對(duì)password=123456加密,這個(gè)明文密碼太簡(jiǎn)單,容易撞庫(kù)解密,所以在123456之后隨機(jī)加一個(gè)字符串,比如abc,這樣實(shí)際是對(duì)123456abc進(jìn)行加密,如果不知道abc這個(gè)字符串,反解的可能性降低,安全性更高。這樣的一個(gè)字符串就叫做鹽。

四、實(shí)際應(yīng)用

            
#實(shí)現(xiàn)加密:傳入一個(gè)值,如果有鹽值,則加鹽加密;否則直接加密
def my_md5(s:str,salt=None):
  s=str(s)
  if salt:
    s=s+salt
  m=hashlib.md5(s.encode())
  return m.hexdigest()
          

總結(jié)

以上所述是小編給大家介紹的python的一些加密方法及python 加密模塊 ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論