码迷,mamicode.com
首页 > 编程语言 > 详细

python之hashlib模块

时间:2018-05-24 12:03:14      阅读:355      评论:0      收藏:0      [点我收藏+]

标签:update   字符   sse   一致性   color   algorithm   att   方式   dom   

  hashlib模块是python内置的摘要算法。

  hashlib有两种调用方式:

  第一种是hashlib.new方法

  new(name, data=b‘‘, **kwargs) - returns a new hash object implementing the given hash function; initializing the hash using the given binary data.

import hashlib
md5obj = hashlib.new("md5", balex3714)
md5obj.hexdigest()

  第二种是直接创建被允许的的算法

  Named constructor functions are also available, these are faster than using new(name):

  md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s(), sha3_224, sha3_256, sha3_384, sha3_512, shake_128, and shake_256.

  More algorithms may be available on your platform but the above are guaranteed to exist. See the algorithms_guaranteed and algorithms_available attributes to find out what algorithm names can be passed to new().

import hashlib
# 将一个字符串进行摘要运算,拿到一个固定的值;,包含了多中加密算法
md5obj = hashlib.md5() # 摘要
md5obj.update(balex)  # 要加密的字符串的字节
md5obj.update(b"3714")  # 要加密的字符串的字节
# 多次update是拼接到一起的,再进行hexdigest(),结果和一次update的时一样的
# md5obj.update(b‘alex3714)
md5obj.hexdigest() #转成16进制,加密结果是32位

  用户名与密码加密:

  名词:撞库,根据输入和摘要算法的结果来验证输入与存储的加密算法结果的一致性。

     加盐,通过加入随机字符串来防止撞库。

  对用户名和密码加密,通常会进行加盐:

    1.根据用户名生成随机字符串

    2.将该随机字符串与密码拼接在一起,进行摘要算法,得到最后的密码加密结果

import hashlib, random
l1 = list(range(48, 58))
l2 = list(range(65, 91))
l3 = list(range(97, 123))
l1.extend(l2)
l1.extend(l3)

username = "alex"
passwd = "alex3714"

# 根据用户名生成随机字符串
lis = ""
for i in range(16):
    v = random.randint(0, len(l1)-1)
    lis += chr(l1[v])

passwd += lis
md5 = hashlib.new("md5", bytes(passwd, encoding="utf8"))
passwd = md5.hexdigest()

user = dict(
    username=username,
    user_string=lis,
    passwd=passwd,
)

print(user)

# {‘username‘: ‘alex‘, ‘user_string‘: ‘MnkCViH3avdDYp3U‘, ‘passwd‘: ‘35a5a0e38ea22720a78d594d8f02a021‘}

 

python之hashlib模块

标签:update   字符   sse   一致性   color   algorithm   att   方式   dom   

原文地址:https://www.cnblogs.com/kuaizifeng/p/9081566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!