hashlib模块

37 篇文章 0 订阅
30 篇文章 0 订阅

"""
hash
    unhashable  不可hash 是可变的
    hash 是一种算法
        特点:
    1.输入任意长度的数据 输出固定长度的字符串,因此也称之为信息摘要算法
    2.hash算法有很多实现方式,当算符固定时,如果输入相同,输出结果必然相同
        (极小的几率会出现,不同的输入产生相同的结果)
    3.无法通过hash结果反解出源数据

    使用场景
    1.可以用于加密
    2.用于文件校验

    # root 123
    # root  asjdsajdsjladlsjadlsjadjk-
    # 我不知道用户明文密码 意思时知道加密后的密码

    m = md5()
    m.updat()
    m.hexdigest()
    注意:加密的只能时字节类型  得到的时字符串类型

"""


import hashlib
# # 创建一个加密对象
m = hashlib.md5()
# 计算123456的hash值
m.update("abcabc".encode("utf-8"))
# 提取加密结果
# print(len(m.hexdigest()))
print(m.hexdigest())


# # 创建一个加密对象
# m = hashlib.sha512()
# # 计算123456的hash值
# m.update("123456".encode("utf-8"))
# # 提取加密结果
# print(len(m.hexdigest()))

# with open("2.re模块.py","rb") as f:
#     m = hashlib.md5()
#     m.update(f.read())
#     print(m.hexdigest())


# with open("userdb","wt") as f:
#     res = input("pwd:")
#     m = hashlib.md5()
#     m.update(res.encode("utf-8"))
#     r = m.hexdigest()
#     f.write(r)

# with open("userdb","rt") as f:
#     pwd = f.read()
#
#     res = input("pwd:")
#     m = hashlib.md5()
#     m.update(res.encode("utf-8"))
#     r = m.hexdigest()
#
#     if r == pwd:
#         print("成功")

# update 可以多次执行 也就意味  你可以打开文件 读一次就掉调用一次update
# dbdic = {"440ac85892ca43ad26d44c7ad9d47d3e":"abcabc","e10adc3949ba59abbe56e057f20f883e":"123456"}

#

#  简单的密码可能通过撞库破解,所以我们最好给密码加点盐,在原有的数据基础上加上一段固定的数据


yan = "98273jshad--_++**&*&*ajkdh2y3jks83j2sjans"
# pwd = "123456" + yan

# m = hashlib.md5()
# m.update(pwd.encode("utf-8"))
# r = m.hexdigest()
# print(r)
#
#
# pwd = "123456"
# pwd = pwd + yan
#
# m = hashlib.md5()
# m.update(pwd.encode("utf-8"))
# r = m.hexdigest()
# print(r)

import hmac
m = hmac.new(yan.encode("utf-8"))
m.update("123456".encode("utf-8"))
print(m.hexdigest())

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值