• hashlib模块


    简述

    用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

    1、hashlib.md5()加密

    1 import hashlib
    2 d = hashlib.md5()
    3 d.update(b"weng")
    4 print(d.hexdigest())
    5 #输出  1895e0e72493a2bd17f2559364bbf518
    6 
    7 d.update(b"xiaoqing")
    8 print(d.hexdigest())
    9 #2句合起来输出  fa12dea42c6f01df6f3ede48b739d083

    2、sha...()系列

    已经被淘汰

    #********************sha256*******************
    
    import hashlib
    d = hashlib.sha1()
    d.update(b"weng")
    print(d.hexdigest())
    #输出
    # c460d45b9ce464aaf9b705baea3d5e353aa1c8fb
    
    d.update(b"xiaoqing")
    print(d.hexdigest())
    #2句合起来输出
    # c98ab444d0c3a6109e70d2287bdaf65cffbe1e34
    
    #********************sha256*******************
    import hashlib
    d = hashlib.sha256()
    d.update(b"weng")
    print(d.hexdigest())
    #输出
    # af5df0db1afe88190f9215bb66b8eefab08a95f2a2b52b7c5b0e01a526843cdf
    
    d.update(b"xiaoqing")
    print(d.hexdigest())
    #2句合起来输出
    # 296e089ed765bc2017992859f8e3991c81ec5ce53b8dfdf2212cdd0fc6809341
    
    #********************sha256*******************
    import hashlib
    d = hashlib.sha224()
    d.update(b"weng")
    print(d.hexdigest())
    #输出
    # 82924a97a28e2393bd03f1fb0cabbb37a75df4b6ea4186abc4f4acf4
    
    d.update(b"xiaoqing")
    print(d.hexdigest())
    #2句合起来输出
    # cf303311d4f2ce6824a852828f1715ce639834341d4080d2e90d5621
    
    #********************sha256*******************
    import hashlib
    d = hashlib.sha384()
    d.update(b"weng")
    print(d.hexdigest())
    #输出
    # d4aa05ec162859f66141c4b8ff348161a94358911b673719300d212dbe3fcbe0f7ceb74543b9c8b64e726c0e279899a8
    
    d.update(b"xiaoqing")
    print(d.hexdigest())
    #2句合起来输出
    # e30d4698ce244a739e579efb4e4a8f4be07afb84c5d8b5137394d9863c9d55960afe3e8cdb8a8f4c7db89c37f0b00f49
    
    #********************sha256*******************
    
    import hashlib
    d = hashlib.sha512()
    d.update(b"weng")
    print(d.hexdigest())
    #输出
    # 044218baa100b5051cbfbe1dfbc09463223d3ab4fee581698c2ae0738c0344f63e7c51c0331aeef4d735da4f3b31ab16bfab66e78c6f775384077c0d1268fb62
    
    d.update(b"xiaoqing")
    print(d.hexdigest())
    #2句合起来输出
    # c1f5e2690eb59f9a3f5e8793c1ba48871af36b587c855379a89e3777a6cdce4ee98796284d8875fbd850378b2600f8bf173861f6841909357a789ea1e1421d22

    ps:

    1. 以上这几种,其实都是对MD5加密的不同算法
    2. 其中sha256用的最多,比MD5要安全的多
    3. 有些公司会用加盐方式加密,比如:把字符串"zhangqigao",通过一定的算法变成"zhang.qi.gao",当然这种算法自己肯定要知道,然后MD5加密,当然每个公司的加盐方式是不一样的。

    3、hmac

    还不够吊?python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密

    散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(Message Authentication Code)的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的真伪;

    一般用于网络通信中消息加密,前提是双方先要约定好key,就像接头暗号一样,然后消息发送把用key把消息加密,接收方用key + 消息明文再加密,拿加密后的值 跟 发送者的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了。

    1 import hmac
    2 d = hmac.new("".encode(encoding = "utf-8"))
    3 print(d.hexdigest()) #按16进制加密输出
    4 print(d.digest())   #按10进制加密输出
    5 #1c60af3f79850092000bc20dd67085c7
    6 #b'x1c`xaf?yx85x00x92x00x0bxc2
    xd6px85xc7'
  • 相关阅读:
    Golang基础笔记
    PHP面试题
    PHP操作文件常用函数
    转:C#委托与事件
    转:Tkinter教程之Text(2)篇
    Tkinter教程之Text篇(1)
    转:Python 从FTP 下载数据的例子
    转:Python模块学习 ---- httplib HTTP协议客户端实现
    转:Python yield 使用浅析
    有用的网址地址
  • 原文地址:https://www.cnblogs.com/wengxq/p/7011039.html
Copyright © 2020-2023  润新知