python的hash模块

来源:互联网 发布:大数据hadoop 编辑:程序博客网 时间:2024/05/17 08:36
# -*- coding: utf-8 -*-"""python 的MD5 sha1 模块"""import hashlib#md5的例子m = hashlib.md5()m.update(b"Hello 123")m.update(b" Hello 456")print(m.digest())   #字节串print(m.hexdigest())#字符串print(m.digest_size)#16print(m.block_size)#64#也可以一次处理print(hashlib.md5(b"Hello 123 Hello 456").hexdigest())"""模块函数hashlib.new(name[,data]) name:算法的名字 data:字节数据hashlib.algorithms_guaranteed 所有平台支持的算法{'sha1', 'sha256', 'sha384', 'md5', 'sha512', 'sha224'}hashlib.algorithms_available 返回python可用的算法,可用于new(),guaranteed是它的子集{'RIPEMD160', 'sha1', 'sha256', 'SHA256', 'sha', 'dsaEncryption', 'MD5', 'SHA224', 'SHA384', 'DSA-SHA', 'dsaWithSHA', 'sha224', 'md4', 'MD4', 'whirlpool', 'SHA', 'sha384', 'ripemd160', 'md5', 'SHA1', 'sha512', 'DSA', 'SHA512', 'ecdsa-with-SHA1'}hash对象属性hash.digest_size 结果的大小hash.block_size 块大小hash.name 名字hash.update(arg) 看例子hash.digest() 字节串hash.hexdigest() 字符串hash.copy() 返回hash对象的拷贝用于密码加密hashlib.pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None)hash_name 算法名称password 要加密的密码salt 建议16字节或更长iterations 迭代次数,取决于算法和计算能力,dklen 结果长度返回值是字节串"""#测试迭代用时#100000     0.0625  秒出结果#1000000    0.63    小卡一下#10000000   6.2     不可接受#...#10000000000 超出最大值import binasciifrom datetime import datetimet1 = datetime.now()dk = hashlib.pbkdf2_hmac('md5', b'password', b'salt', 100000)t2 = datetime.now()t = (t2 - t1).seconds + (t2 - t1).microseconds / 1000000print(t)m = binascii.hexlify(dk)print(m)

0 0