zoukankan      html  css  js  c++  java
  • Python3 md5/base64/sha系列 hex 加密

    原文在:https://www.cnblogs.com/gqv2009/p/12361900.html

    md5加密(HASH)

    md5是不可逆的,不能解密
    不论字符串多长,生成的md5是等长的

    md5

    import hashlib
    #import md5 #Python2里的引用
    s='python321'
    # s.encode()#变成bytes类型才能加密
    m= hashlib.md5(s.encode())
    print("md51=",m.hexdigest())
    
    m=hashlib.sha3_224(s.encode()) #长度是224
    print("md52=",m.hexdigest())
    
    m=hashlib.sha3_256(s.encode())  #长度是256
    print("md53=",m.hexdigest())
    
    m=hashlib.sha3_512(s.encode()) #长度是512
    print("md54=",m.hexdigest())

    md5加盐

    #如密码是123456:
    s='dsfka676f9a78#$%^' #盐的值
    #加盐后,密码变为: 123456dsfka676f9a78#$%^

    如需加密,可调用以下函数

    import hashlib
    def my_md5(s,salt=''):      #加盐,盐的默认值是空
        s=s+salt
        news=str(s).encode()    #先变成bytes类型才能加密
        m=hashlib.md5(news)     #创建md5对象
        return m.hexdigest()    #获取加密后的字符串
    s='123456dsfka676f9a78#$%^' #盐的值
    print(my_md5(s))

    Base64

    import base64
    
    s = 'python3'
    #编码1
    bas1 = base64.encodebytes(s.encode()) 
    print(bas1) #每57个字节有一个
    
    bas2 = base64.b64encode(s.encode()) # 若不想有
    分隔,用b64encode
    print(bas2)
    #编码2
    m = base64.b64encode(s.encode())
    res = m.decode()
    print(res)
    
    #解码1
    data = base64.b64decode(bas1)  
    print(data)
    #解码2
    b = base64.b64decode('MTUz')
    res = b.decode()
    print(res)

    import base64
    
    str1 = ''
    #编码
    result = base64.b64encode(str1.encode())
    print(result)
    
    #解码
    temp = base64.b64decode(result)
    print(temp.decode())

    sha 系列 hex 加密

    以sha1为例

    data="123456789"
    sha1 = hashlib.sha1(data).hexdigest()
    print(sha1)

    以sha256为例

    def sha256hex(data):
        sha256 = hashlib.sha256()
        sha256.update(data.encode())
        res = sha256.hexdigest()
        print("sha256加密结果:", res)
        return res
    data = "123456789"
    sha256hex(data)

    参考:https://www.cnblogs.com/gqv2009/p/12361900.html

  • 相关阅读:
    Gym 101466(完整)
    HDU 3639 Hawk-and-Chicken (强连通缩点+DFS)
    hdu3394--Railway(点的双连通分量)
    hdu2732 Leapin' Lizards 最大流+拆点
    hdu2609 How many 字典树+最小表示法
    hdu2594 Simpsons’ Hidden Talents LCS--扩展KMP
    hdu2509 Be the Winner 博弈
    hdu2461 Rectangles 线段树--扫描线
    hdu2389 Rain on your Parade 二分图匹配--HK算法
    hdu2328 Corporate Identity 扩展KMP
  • 原文地址:https://www.cnblogs.com/pu369/p/15410238.html
Copyright © 2011-2022 走看看