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

  • 相关阅读:
    PAT甲级——A1091 Acute Stroke【30】
    PAT甲级——A1090 Highest Price in Supply Chain
    PAT甲级——A1089 Insert or Merge
    PAT甲级——A1088 Rational Arithmetic
    PAT甲级——A1087 All Roads Lead to Rome【30】
    【php中的curl】php中curl的详细解说
    【php中的curl】使用curl完成POST数据给飞信接口
    【php中的curl】php中curl的使用
    【socket】php实现socket
    【socket】用PHP的socket实现客户端到服务端的通信
  • 原文地址:https://www.cnblogs.com/pu369/p/15410238.html
Copyright © 2011-2022 走看看