首页 > 编程语言 >24、python函数篇 hashlib模块、subprocess模块、logging模块

24、python函数篇 hashlib模块、subprocess模块、logging模块

时间:2022-10-27 22:36:09浏览次数:41  
标签:24 hashlib logging subprocess 模块 加密 日志 logger

目录

一、hashlib模块

1、简介

什么是哈希模块:

​ hashlib模块是一种加密模块,内部存有多种加密类型

加密的作用:

​ 可将明文数据进行加密,转换成一串密文,密文越长说明文件加密的越复杂

加密算法的种类:

  • md5
  • base64
  • hmac
  • sha系列(sha1、sha224、sha256等等)

补充说明:

​ 1.算法不变,如果内容相同,那么加密的结果肯定相同

​ 2.待加密的明文,可以一次传入,也可分多次传入,不会影响密文的结果

​ 3.加密的结果是无法反解密的

​ 4.加盐处理:

​ 4.1.加盐处理的意思是指:在明文内加入干扰项,可改变密文的结果,来提高被加密的安全性

​ 4.2.动态加盐:指干扰项是动态的,在加盐的基础上更大程度上提高被加密文件的安全性

应用方向:

  • 用户密码加密
    • 可应用于用户登录时,对密码的加密
  • 文件安全性校验
    • 可对文件进行加密,通过比对文件的密文来判断文件是否被修改

2、基本操作与用法

导入模块:

import hashlib

具体用法:

1、选择加密算法:
	md5 = hashlib.md5()

2、传入明文:
	md5.update(b'hello')  
   # 传入的明文需提前转换成二进制的方式

3、获取加密密文:
	res = md5.hexdigets()
	print(res)  
	# 5d41402abc4b2a76b9719d911017c592

二、subprocess模块

1、简介

什么是subprocess模块:

​ subprocess是python内置的模块,这个模块中的Popen可以查看用户输入的命令行是否存在

​ 如果存在,把内容写入到stdout管道中

​ 如果不存在,把信息写入到stderr管道

​ 要注意的是,这个模块的返回结果只能让开发者看一次,如果想多次查看,需要在第一次输出的时候,把所有信息写入到变量中。

2、基本操作与用法

模块导入:

import subprocess

基本格式:

subprocess.Popen('命令',
             shell = True,
             stdout = subprocess.PIPE,
             stderr = subprocess.PIPE)
  • shell=True 表示要在终端中运行的命令

  • stdout=sbuprocess.PIPE 表示当命令存在的时候,把结果写入到stdout管道

  • stderr=sbuprocess.PIPE 表示当命令不存在的时候,把结果吸入到stderr管道

具体用法:

import subprocess

r = subprocess.Popen('xxxx', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

print(r.stdout.read().decode('utf8'))
print(r.stderr.read().decode('utf8'))

三、logging模块

1、简介

什么是logging模块:

​ loggin模块是用来写日志的,以前我们写日志需要自己往文件里写记录信息,使用了logging之后我们只需要一次配置好,以后写日志的事情都不需要我们操心了,非常方便

日志的组成:

  • 产生日志
  • 过滤日志
  • 输出日志
  • 日志格式

日志的等级:

  • DEBUG
    • 最详细的日志信息,典型应用场景是 问题诊断
  • INFO
    • 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
  • WARNING
    • 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
  • ERROR
    • 由于一个更严重的问题导致某些功能不能正常运行时记录的信息
  • CRITICAL
    • 当发生严重错误,导致应用程序不能继续运行时记录的信息

掌握层度:

​ longging日志模块,内置方法与代码相对固定,在使用时,只需根据个人要求,对内部变量稍作修改即可使用

2、基本操作与用法

导入模块:

import logging

打印日志级别:

logging.debug('Python debug')
logging.info('Python info')
logging.warning('Python warning')
logging.error('Python Error')
logging.critical('Python critical')
-------------------------------------------------------------------
WARNING:root:Python warning
ERROR:root:Python Error
CRITICAL:root:Python critical
  • 当指定一个日志级别之后,会记录大于或等于这个日志级别的日志信息,小于的将会被丢弃, 默认情况下日志打印只显示大于等于 WARNING 级别的日志。

代码用法:

import logging
logger = logging.getLogger("simple_example")
logger.setLevel(logging.DEBUG)
# 建立一个filehandler来把日志记录在文件里,级别为debug以上
fh = logging.FileHandler("spam.log")
fh.setLevel(logging.DEBUG)
# 建立一个streamhandler来把日志打在CMD窗口上,级别为error以上
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# 设置日志格式
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
ch.setFormatter(formatter)
fh.setFormatter(formatter)
#将相应的handler添加在logger对象中
logger.addHandler(ch)
logger.addHandler(fh)
# 开始打日志
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")

标签:24,hashlib,logging,subprocess,模块,加密,日志,logger
From: https://www.cnblogs.com/kangssssh/p/16834243.html

相关文章

  • hashlib 模块 subprocess 模块 logging日志模块
    今日内容hashlib加密模块1.何为加密将明文数据处理成密文数据让人看不懂2.为什么加密保证数据的安全3.如何判断数据是否加密的一串没有规律的字符串(数字、......
  • 模块
    目录一、hashlib加密模块1、何为加密2、为什么加密3、如何判断数据是否以加密4、密文的长短有什么意义5、加密算法的基本操作二、加密补充说明三、subprocess模块1、subpro......
  • Python-requests 模块
    requests模块Python中原生的基于网络请求的模块,主要用来发送HTTP请求,简单便捷,效率极高.工作流程:指定url发起请求获取响应数据持久化存储requests请求......
  • 加密模块与subprocess模块跟日志模块
    hashlib加密模块1.何为加密 将明文数据处理成密文数据让人无法看懂2.为什么加密 保证数据的安全3.如何判断数据是否是加密的 一串没有规律的字符串(数字、字母、符......
  • hashlib模块、subprocess模块、loggin日志模块及实战
    hashlib加密模块1.何为加密 将明文数据处理成密文数据让人无法看懂2.为什么加密 保证数据的安全3.如何判断数据是否是加密的 一串没有规律的字符串(数字、字母、符......
  • 微信小程序WXS功能模块
    好久没有看微信小程序的官方文档了,最近在开发个人小程序时,才发现WXS功能。有点跟不上节奏了!WXS模块代码可以写在WXML文件中的标签内,或者是以.wxs为后缀的文件内。每一个.w......
  • 加密模块与日志模块
    加密模块与日志模块hashlib加密模块简介1.何为加密加密就是将明文数据处理成让人看不懂的密文数据2.为什么要加密加密是为了保证一些重要的数据的安全3.如......
  • 加密模块、subprocess模块与日志
    加密模块、subprocess模块与日志hashlib加密模块加密将明文数据处理成密文数据。为什么加密,为了保证数据安全。判断数据是否加密已加密的数据,通常表现为毫无规律的一......
  • 10月27日内容总结——hashlib加密模块和logging、subprocess模块
    目录一、hashlib加密模块1、何为加密2、为什么加密3、如何判断数据是否以加密4、密文的长短有什么意义5、加密算法的基本操作二、加密补充说明三、subprocess模块1、subpro......
  • hashlib加密模块 subprocess模块 logging日志模块
    目录hashlib加密模块简介hashlib使用流程hashilb加密模块使用说明明文绑定密文密文长度不变多次传入密文不可解密原因加盐处理(salt)普通加盐动态加盐加密实际运用用户密码......