python3下的pycryptodome庫
from crypto.cipher import
*if __name__ ==
'__main__'
: message =
'123'
#md5和sha的用法差不多
print
("sha3_512: "
+ sha3_512.new(message.encode(
'utf-8'))
.digest().
hex())
print
("sha512: "
+ sha512.new(message.encode(
'utf-8'))
.digest().
hex())
print
("md5: "
+ md5.new(message.encode(
'utf-8'))
.digest().
hex())
print
("blake2s: "
+ blake2s.new(data = message.encode(
'utf-8'))
.digest().
hex())
#hmac.new(金鑰,需要處理的訊息,處理的雜湊方法)
key =
'abcd'
print
("hmac-sha224: "
+ hmac.new(key.encode(
'utf-8'
), message.encode(
'utf-8'
), sha224)
.digest().
hex())
#shank的使用也類似
print
("shake128: "
+ shake128.new(message.encode(
'utf-8'))
.read(64)
.hex()
)
注意:
1、我使用的pycryptodome版本為3.9.9,之前是使用了3.4.6會有很多奇怪的問題。可以這樣公升級
pip install --upgrade pycryptodome
或
pip install --upgrade pycryptodome --user
2、
原本的__init__檔案可能會缺少一些類,使用sha3的時候會報錯,需要修改下
__all__ =
['hmac'
,'md2'
,'md4'
,'md5'
,'ripemd160'
,'sha1'
,'sha224'
,'sha256'
,'sha384'
,'sha512'
,'cmac'
,'poly1305'
,'sha3_224'
,'sha3_256'
,'sha3_384'
,'sha3_512'
,'shake128'
,'shake256'
]
3、
shake的read函式中的數值表示位元組數,列印的結果2個字元表示1個位元組。
Top K 演算法詳解 雜湊表Hash的使用
要說明這個問題,還是用例項說明比較容易理解,看下面一道 搜尋引擎會通過日誌檔案把使用者每次檢索使用的所有檢索串都記錄下來,每個查詢串的長度為1 255位元組。假設目前有一千萬個記錄 這些查詢串的重複度比較高,雖然總數是1千萬,但如果除去重複後,不超過3百萬個。乙個查詢串的重複度越高,說明查詢它的使用...
Apriori演算法中使用Hash樹進行支援度計數
在apriori演算法中,當檢視乙個候選集是否是頻繁項集,需要將該候選集與db中的每個事務進行比較,如果該候選集在這個事務 現了,就將其支援度加1。當db中有5個事務,而候選項集為3個的時候,其總的比較次數就是3 5 15次。為了減少比較的次數,通過以hash樹的結構來儲存候選集,每乙個事務不再和每...
python3使用 python3使用模組
python內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def tes...