zoukankan      html  css  js  c++  java
  • python之hash模块加密

    1.什么是hash

        hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值

        1.如果把hash算法比喻为一座工厂

        2.那传给hash算法的内容就是原材料

        3.生成的hash值就是生产出的产品

    2.为何要用hash算法

        hash值/产品有三大特性:

        1.只要传入的内容一样,得到的hash值必然一样

        2.只要我们使用是hash算法固定,无论传入的内容有多大,得到的hash值的长度是固定

        3.不可以用hash值逆推出原来的内容

        基于1和2可以在下载文件时做文件一致性校验

        基于1和3可以对密码进行加密

    import hashlib

    两种传值方式:

        1.造出hash工厂

        m=hashlib.md5()                      #hashlib.sha512 :可以选择不同的算法加密,不同的算法的加密结果的长度也会不一样

        2.运送原材料

        m.update('你好啊’.encode('utf-8'))

        3.产出hash值

        print(m.hexdigest)

        

    1.

       1.造出hash工厂

        m=hashlib.md5('你'.encode('utf-8'))

       2.运送原材料

        m.update('你好啊’.encode('utf-8'))

        3.产出hash值

        print(m.hexdigest)

    应用一:文件一致性校验

        1.造出hash工厂

        m=hashlib.md5()

        2.运送原材料

         with open(r'E:1.mp4','rb') as f:
             for line in f:

                 m.update(line)

        3.产出hash值

        print(m.hexdigest)

    应用二:密码加密

        m=hashlib.md5()

        m.update('天王盖地虎'.encode('utf-8'))      #添加个暗号,提升密码复杂度
        m.update(password.encode('utf-8'))
        print(m.hexdigest()) 

    加密模块另一个加密模块 hmac

    import hmac

    m=hmac.new('小鸡炖蘑菇'.encode('utf-8')) #用法跟hash一样的用法,但必须要传个值,增加密码难度性
    m.update('hello'.encode('utf-8'))
    print(m.hexdigest())

  • 相关阅读:
    PLC衔接新方式UcAsp.Opc
    dev barmanager 中的 add按钮出不来,无法创建菜单的问题解决
    一个或多个页边距被设置到也可打印的页面范围之外,处理方式
    bar设置全背景色
    PHP计算两个字符的相似程度similar_text
    PHP中双冒号::的用法
    百度站内搜索应该注意哪些方面?
    快给你的网站添加微信公众号吧!
    实例讲解网站前台界面开发流程
    百度富文本编辑器UEditor安装配置全过程
  • 原文地址:https://www.cnblogs.com/Marcki/p/10111951.html
Copyright © 2011-2022 走看看