zoukankan      html  css  js  c++  java
  • 二十三.面向对象模块使用(hashlib,logging)

    模块使用

    1. hashlib
    用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
    
    import  hashlib
    
    hash = hashlib.md5()
    hash.update(b'admin')
    cc=hash.hexdigest()
    print(cc)
    
    print("**********************************************************888")
    # 以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
    bb=input("输入密码")
    has=hashlib.md5(b'lover6666')   # 在md5里面加盐  意思就是随意加一个key值确保不被撞库
    has.update(bb.encode("utf-8"))    #  加密必须是字节
    print(has.hexdigest())
    # 2f41599d1b13574d871267603d6dd8c3     lover
    
    print("**********************************************************888")
    
    aa=input("输入")
    cc=hashlib.md5(b'lover6666')
    cc.update(aa.encode("utf-8"))
    bb=cc.hexdigest()
    if bb=="2f41599d1b13574d871267603d6dd8c3":  # lover
           print("密码比对成功了哈哈哈")
    else:
           print("密码比对失败了哈哈哈")
    
    print("**********************************************************888")
    
    import hashlib
    aa=input("输入>>>")
    def md5(aa):
       ha= hashlib.md5(b'lover6666')
       ha.update(aa.encode("utf-8"))
       cc=ha.hexdigest()
       return  cc
    if md5(aa)=="2f41599d1b13574d871267603d6dd8c3":
            print("密码比对成功了哈哈哈")
    else:
        print("密码比对失败了哈哈哈")
    
    
    print("**********************************************************888")
    import hmac
    h = hmac.new('wueiqi')
    h.update('hellowo')
    print(h.hexdigest())
    
    
    import  hashlib
    has=hashlib.md5()
    has.update(b"loveryuan")
    bb=has.hexdigest()
    print(bb)   # a610558b66ba0696dafa8dfb97d28fde
    
    print("*******************************88")
    has=hashlib.md5()
    has.update(b"lover")
    has.update(b"yuan")             # 直接看见代码结果  说明可以update可以追加   意思在上一个update继续摘要
    bb=has.hexdigest()
    print(bb)     # a610558b66ba0696dafa8dfb97d28fde
    
    
    # 对文件加密  来判断在上传防止别人修改文件 或者网络传输掉包      做     加密 就可以防止别人修改   因为加密数据是唯一性
    # hashlib    经典用法做数据一次性校验   唯一不可逆
    print("***************************************8")
    ha=hashlib.md5()
    with open("aa.py","rb")as f1:
        for row in  f1:
            ha.update(row)
            print(ha.hexdigest())
    print("***************************************8")
    ha=hashlib.md5()
    with open("aa.py","rb")as f1:
            ha.update(f1.read())
            print(ha.hexdigest())



    ha=hashlib.md5()
    with open("aa.py","rb")as f1:
    for row in f1:
    ha.update(row)
    print(ha.hexdigest())# f430afd90ee49a80666fd1966983dd22

    ha=hashlib.md5()
    with open("aa.py","rb")as f1:
    ha.update(f1.read())
    print(ha.hexdigest()) # f430afd90ee49a80666fd1966983dd22
    
    
    2. logging
    # 日志是来记录开发人员的对程序的操作    便于开发人员看
    # 所对应的等级
    # CRITICAL = 50
    # FATAL = CRITICAL
    # ERROR = 40
    # WARNING = 30
    # WARN = WARNING
    # INFO = 20
    # DEBUG = 10
    # NOTSET = 0
    import logging
    
    logging.basicConfig(filename='vv.log',
                        format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S %p',
                        level=10)
    
    
    logging.debug('debug')   # 调试
    logging.info('info')#  信息
    logging.warning('warning') #警告
    logging.error('error')# 错误
    logging.critical('critical')# 危险
    logging.log(10,'log')#
    
    def fun():
        try:
            a=a+1
        except Exception as e:
            print(e)
            logging.error(e)
    fun()
    
    print("******************************************************************************888")
    
    
    
    import traceback   # 错误消息与追溯   将错误信息定位到每一行  模块
    def fun():
        try:
            a=a+1
        except Exception as e:
            msg=traceback.format_exc()
            logging.error(msg)   # 写入日志中
    fun()
    logging日志分类操作看图


     
     
  • 相关阅读:
    virtual box 改变已经创建的虚拟系统分配的硬盘
    linux android ndk
    ssm框架问题和Java
    mybatis spring sqlsession
    mybatis官网学习
    设计模式之适配器模式
    讲IOC非常好的一篇文章--初步弄懂DI
    aliyun服务器ubuntu系统+MySQL+SqlDeveloper
    stl 学习笔记
    深度图转点云图代码
  • 原文地址:https://www.cnblogs.com/Sup-to/p/11100097.html
Copyright © 2011-2022 走看看