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

    md5加密

    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)
    

    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)
    
  • 相关阅读:
    http基础知识总结
    unittest单元测试流程
    python测试框架nose
    HTML,CSS,JS之间的关系
    无法远程连接mysql,连接后也没有权限创建数据库
    Android 导入导出CSV,xls文件 .
    Android Sqlite 导入CSV文件 .
    用java开发的网站或者程序
    111个知名Java项目集锦,包括url和描述
    Ruby简介,附带示例程序
  • 原文地址:https://www.cnblogs.com/gqv2009/p/12361900.html
Copyright © 2011-2022 走看看