亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

python模塊之hashlib

luodongseu / 2194人閱讀

摘要:使用算法名稱構(gòu)造函數(shù)較使用更快所有平臺(tái)的模塊都支持的算法的名稱集合。的結(jié)果集總是結(jié)果集的子集對(duì)象的字節(jié)長(zhǎng)度對(duì)象的內(nèi)部塊大小對(duì)象的名稱傳遞類字節(jié)參數(shù)通常是更新對(duì)象。表示的哈希摘要算法的名稱,比如或。表示迭代次數(shù),基于算法以及機(jī)器計(jì)算能力設(shè)置。

hashlib模塊實(shí)現(xiàn)了多種安全哈希和信息摘要算法的通用接口,包括FIPS中定義的SHA1, SHA224, SHA256, SHA384, SHA512以及RFC 1321中定義的MD5

注意點(diǎn):
1. adler32及crc32哈希由zlib模塊提供
2. 某些算法已知存在哈希碰撞弱點(diǎn)

哈希算法

每個(gè)hash算法都有一個(gè)同名的構(gòu)造函數(shù),并返回?fù)碛邢嗤涌诘膆ash對(duì)象

sha1(), sha224(), sha256(), sha384(), sha512(), blake2b()以及blake2s()這些構(gòu)造函數(shù)在hashlib模塊中總是可用。md5()通常也可用,但在某些罕見(jiàn)的python版本(“FIPS compliant” build of Python)中例外。取決于所用平臺(tái)上python使用的OpenSSL,hashlib也支持某些額外的算法,在大多數(shù)平臺(tái)上,sha3_224(), sha3_256(), sha3_384(), sha3_512(), shake_128(), shake_256()都是可用的。

>>> import hashlib
>>> m = hashlib.sha256()
>>> m.update(b"Nobody inspects")
>>> m.update(b" the spammish repetition")
>>> m.digest()
b"x03x1exdd}Aex15x93xc5xfex00oxa5u+7xfdxdfxf7xbcNx84:xa6xafx0cx95x0fKx94x06"

或者更精簡(jiǎn)的方式:

>>> hashlib.sha256(b"Nobody inspects the spammish repetition").digest()
b"x03x1exdd}Aex15x93xc5xfex00oxa5u+7xfdxdfxf7xbcNx84:xa6xafx0cx95x0fKx94x06"
hashlib.new(name[, data])

通用構(gòu)造函數(shù),name參數(shù)表示要使用的hash算法的名稱,可以是上述列出的所有hash算法以及OpenSSL庫(kù)支持的其他算法。使用算法名稱構(gòu)造函數(shù)較使用new()更快

>>> h = hashlib.new("sha256", b"Nobody inspects the spammish repetition")
>>> h.digest()
b"x03x1exdd}Aex15x93xc5xfex00oxa5u+7xfdxdfxf7xbcNx84:xa6xafx0cx95x0fKx94x06"
hashlib.algorithms_guaranteed

所有平臺(tái)的hashlib模塊都支持的hash算法的名稱集合。md5也在此集合中(Note that ‘md5’ is in this list despite some upstream vendors offering an odd “FIPS compliant” Python build that excludes it.)。

hashlib.algorithms_available

當(dāng)前運(yùn)行的python解釋器支持的hash算法的名稱集合,在new()構(gòu)造函數(shù)中使用都能被正確識(shí)別。同一算法可能以不同名稱出現(xiàn)多次。
hashlib.algorithms_guaranteed的結(jié)果集總是hashlib.algorithms_available結(jié)果集的子集

hash.digest_size

hash對(duì)象的字節(jié)長(zhǎng)度

hash.block_size

hash對(duì)象的內(nèi)部塊大小

hash.name

hash對(duì)象的名稱

hash.update(data)

傳遞類字節(jié)參數(shù)(通常是bytes)更新hash對(duì)象。重復(fù)調(diào)用update()等同于單次的拼接調(diào)用:m.update(a); m.update(b)等同m.update(a+b)

從python3.1開(kāi)始,為了更好的多線程性能,使用OpenSSL支持的hash算法且處理數(shù)據(jù)量大于2047個(gè)字節(jié)的update(或創(chuàng)建)操作發(fā)生時(shí),將釋放python全局解釋器鎖允許其他線程運(yùn)行

hash.digest()

截止此方法調(diào)用時(shí),update()已接收的數(shù)據(jù)的摘要,是一個(gè)可包含0到255之間所有字節(jié)的字節(jié)對(duì)象

hash.hexdigest()

類似于digest(),不過(guò)是以雙倍長(zhǎng)度的只包含十六進(jìn)制數(shù)字的字符串對(duì)象返回摘要值。

hash.copy()

返回hash對(duì)象的克隆

SHAKE算法的可變長(zhǎng)度摘要

The shake_128() and shake_256() algorithms provide variable length digests with length_in_bits//2 up to 128 or 256 bits of security

shake.digest(length)

同hash.digest()

shake.hexdigest(length)

同hash.hexdigest()

密鑰導(dǎo)出

密鑰導(dǎo)出和擴(kuò)展算法是為安全密碼散列設(shè)計(jì)的。類似sha1(password)這種簡(jiǎn)單算法不能有效抵御暴力破解,一個(gè)好的密碼散列函數(shù)必須是可調(diào)節(jié)的,耗時(shí)的,并包含鹽

hashlib.pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None)

pbkdf2_hmac()提供了使用PKCS#5填充的pbkdf2算法,使用HMAC作為偽隨機(jī)函數(shù)。

hash_name表示HMAC的哈希摘要算法的名稱,比如"sha1"或"sha256"。

passwordsalt是類字節(jié)對(duì)象,password長(zhǎng)度應(yīng)該限制在一個(gè)合理范圍之間,salt長(zhǎng)度應(yīng)該在16個(gè)字節(jié)以上且來(lái)源恰當(dāng)。

iterations表示迭代次數(shù),基于hash算法以及機(jī)器計(jì)算能力設(shè)置。截止2013年,sha256算法建議最少進(jìn)行10萬(wàn)次迭代

dklen表示導(dǎo)出密鑰的長(zhǎng)度。默認(rèn)值為None,使用hash_name算法計(jì)算的hash對(duì)象的digest_size屬性長(zhǎng)度

>>> import hashlib, binascii
>>> dk = hashlib.pbkdf2_hmac("sha256", b"password", b"salt", 100000)
>>> binascii.hexlify(dk)
b"0394a2ede332c9a13eb82e9b24631604c31df978b4e2f0fbd2c549944f9d79a5"

Note: A fast implementation of pbkdf2_hmac is available with OpenSSL. The Python implementation uses an inline version of hmac. It is about three times slower and doesn’t release the GIL.

hashlib.scrypt(password, *, salt, n, r, p, maxmem=0, dklen=64)

The function provides scrypt password-based key derivation function as defined in RFC 7914.

passwordsalt是類字節(jié)對(duì)象,password長(zhǎng)度應(yīng)該限制在一個(gè)合理范圍之間,salt長(zhǎng)度應(yīng)該在16個(gè)字節(jié)以上且來(lái)源恰當(dāng)。

n is the CPU/Memory cost factor, r the block size, p parallelization factor and maxmem limits memory (OpenSSL 1.1.0 defaults to 32 MiB). dklen is the length of the derived key.

BLAKE2

待補(bǔ)充...實(shí)在是編不下去了,對(duì)加密算法相關(guān)的知識(shí)太缺乏了

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42573.html

相關(guān)文章

  • Python常用模塊 hashlib模塊——簡(jiǎn)單實(shí)現(xiàn)實(shí)現(xiàn)登錄注冊(cè)

    摘要:唯一要求使用中的進(jìn)行加密請(qǐng)輸入你的賬號(hào)請(qǐng)輸入你的密碼加鹽操作加密加密輸入正確輸入錯(cuò)誤請(qǐng)輸入你要注冊(cè)的名字請(qǐng)輸入你要注冊(cè)的密碼加密加密請(qǐng)輸入你要執(zhí)行的操作注冊(cè)登錄退出問(wèn)題是 ...

    番茄西紅柿 評(píng)論0 收藏2637
  • Python模塊分析:第2節(jié)-hashlib加密模塊

    摘要:上一篇文章模塊分析第節(jié)模塊下一篇文章模塊分析第節(jié)模塊模塊是用來(lái)對(duì)字符串進(jìn)行加密的模塊,明文與密文是一一對(duì)應(yīng)不變的關(guān)系用于注冊(cè)登錄時(shí)用戶名密碼等加密使用。一函數(shù)分析共有種加密算法,分別得到不同的加密密文。 上一篇文章:Python模塊分析:第1節(jié)-random模塊下一篇文章:Python模塊分析:第3節(jié)-typing模塊 hashlib模塊是用來(lái)對(duì)字符串進(jìn)行hash加密的模塊,明文與密...

    WalkerXu 評(píng)論0 收藏0
  • Python中MD5加密

    摘要:的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被壓縮成一種保密的格式就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的十六進(jìn)制數(shù)字串。獲取由位隨機(jī)大小寫(xiě)字母數(shù)字組成的值每次從中隨機(jī)取一位獲取原始密碼的值原始密碼隨機(jī)生成位加密后的密碼 MD5是什么 下面的概念是百度百科的: Message Digest Algorithm MD5(中文名為消息摘要算法第五版)為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列...

    chadLi 評(píng)論0 收藏0
  • python--模塊2

    摘要:可能沒(méi)有用戶輸出的消息創(chuàng)建一個(gè),用于寫(xiě)入日志文件再創(chuàng)建一個(gè),用于輸出到控制臺(tái)對(duì)象可以添加多個(gè)和對(duì)象序列化模塊什么叫序列化將原本的字典列表等內(nèi)容轉(zhuǎn)換成一個(gè)字符串的過(guò)程就叫做序列化。 hashlib模塊 1.Python的hashlib提供了常見(jiàn)的摘要算法,如MD5,SHA1等等。什么是摘要算法呢?摘要算法又稱哈希算法、散列算法。它通過(guò)一個(gè)函數(shù),把任意長(zhǎng)度的數(shù)據(jù)轉(zhuǎn)換為一個(gè)長(zhǎng)度固定的數(shù)據(jù)串(...

    13651657101 評(píng)論0 收藏0
  • Python_異常和模塊

    摘要:例如等價(jià)于到結(jié)束,但不包括。例如返回沒(méi)有每次跳躍的間距,默認(rèn)為。 異常處理 單個(gè)異常處理: try: print(num) except NameError: print(沒(méi)有定義變量) except FileNotFoundError: print(找不到文件路徑) print(1) 多個(gè)異常處理: try: print(num) # 1...

    piglei 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<