python中的hashlib模塊主要提供了兩種加密算法;一種的md5,另外一種是sha;python
返回一個md5對象;把字符串轉換爲字節形式;
返回一個sha1對象;把字符串轉換爲字節形式;
返回一個sha224對象;把字符串轉換爲字節形式;
返回一個sha256對象;把字符串轉換爲字節形式;
返回一個sha384對象;把字符串轉換爲字節形式;
返回一個sha512對象;把字符串轉換爲字節形式;
對於sha算法,越高,算法越複雜,安全度越高;可是加密效率也越低;sha256使用的是最多的;web
返回一個新的hash對象(根據name命名的算法);加密數據必須是字節(二進制)形式;
pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) -> key 基於密碼的密鑰派生函數2以HMAC爲僞隨機函數。
用哈希表中的字節更新哈希對象。重複調用 至關於 將全部參數串聯在一塊兒單個調用;詳見後面案例;算法
以二進制形式返回加密字符;即從加密對象中取字符串加密後的密文(二進制形式);安全
以字符形式返回加密字符;即從加密對象中取字符串加密後的密文(字符串形式);函數
返回一個哈希對象的副本;加密
下面以md5加密算法爲例;其餘算法同樣;spa
#!/usr/bin/env python # -*- coding: utf-8 -*- import hashlib m=hashlib.md5() print(m) # 輸出 < md5 HASH object @ 0x00000245E45E03C8> m.update("wjz".encode('utf8')) m.update("wjk".encode('utf8')) print(m.hexdigest()) # 輸出 0e48d6f05b543d8b513f918eb537b533 print(m.digest()) # 輸出 b'\x0eH\xd6\xf0[T=\x8bQ?\x91\x8e\xb57\xb53' m2=hashlib.md5() m2.update('wjzwjk'.encode('utf8')) print(m2.hexdigest()) # 輸出 0e48d6f05b543d8b513f918eb537b533 print(m2.digest()) # 輸出 b'\x0eH\xd6\xf0[T=\x8bQ?\x91\x8e\xb57\xb53'
從上面案例中,能夠發現: 兩次update字符串'wjz''wjk',等效於 一次update字符串'wjzwjk';3d