zoukankan      html  css  js  c++  java
  • hashlib模块

    海燕

    hashlib提供了常见的摘要算法,如md5sha1等等。
    那么什么是摘要算法呢?摘要算法又称为哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
    注意:摘要算法不是一个解密算法。(摘要算法,检测一个字符串是否发生了变化)
    应涂:1.做文件校验
       2.登录密码
          密码不能解密,但可以撞库,用‘加盐’的方法就可以解决撞库的问题。所有以后设置密码的时候要设置的复杂一点。

    1、什么叫hash:hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值
    2、hash值的特点是:
    2.1 只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验
    2.2 不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码
    2.3 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的

    示例:

    # import hashlib
    #
    # m=hashlib.md5()
    # m.update('hello'.encode('utf-8'))
    # m.update('world'.encode('utf-8'))
    # m.update('egon'.encode('utf-8'))
    # print(m.hexdigest()) #3801fab9b8c8d9fcb481017969843ed5
    
    
    
    import hashlib
    
    m=hashlib.md5()
    m.update('h'.encode('utf-8'))
    m.update('e'.encode('utf-8'))
    m.update('lloworld'.encode('utf-8'))
    m.update('egon'.encode('utf-8'))
    print(m.hexdigest()) #3801fab9b8c8d9fcb481017969843ed5
    
    # 密码加盐
    import hashlib
    pwd='alex3714'
    
    m=hashlib.md5()
    
    m.update(pwd.encode('utf-8'))
    m.update(''.encode('utf-8'))
    m.update('小雨一米五'.encode('utf-8'))
    
    print(m.hexdigest())
    #ae3d07cda315e950e044a6bf4f824ca3

    ############################################################################
    import hashlib m=hashlib.md5() m.update('helloworld'.encode('utf-8')) print(m.hexdigest()) #fc5e038d38a57032085441e7fe7010b0 m=hashlib.sha256() m.update('helloworld'.encode('utf-8')) print(m.hexdigest()) #936a185caaa266bb9cbe981e9e05cb78cd732b0b3280eb944412bb6f8f8f07af # # m=hashlib.sha512() m.update('helloworld'.encode('utf-8')) print(m.hexdigest()) #1594244d52f2d8c12b142bb61f47bc2eaf503d6d9ca8480cae9fcf112f66e4967dc5e8fa98285e36db8af1b8ffa8b84cb15e0fbcf836c3deb803c13f37659a60 # import hmac m=hmac.new('天王盖地虎,小鸡炖模块'.encode('utf-8')) m.update('alex3814'.encode('utf-8')) print(m.hexdigest())
  • 相关阅读:
    最新屏蔽微信举报方法
    C# WIN 生成机器码
    Quartz.net的快速简单上手使用以及防止IIS回收停止Job的处理
    MVC、Web API 请求接口报错“自定义错误模块不能识别此错误。”解决
    获取微信短链接的官方接口
    Window 通过cmd查看端口占用、相应进程、杀死进程
    微信域名检测、防封,微信跳转技术揭秘(二) -- 微信跳转揭秘
    微信域名检测、防封,微信跳转技术揭秘(一) -- 域名检测原理及防封方案
    各种比较方便给力的小工具
    《Git学习指南》学习笔记(三)
  • 原文地址:https://www.cnblogs.com/zh-xiaoyuan/p/13322586.html
Copyright © 2011-2022 走看看