1 import hashlib 2 # 基本使用 3 cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8')) 4 print(cipher.hexdigest()) # 加密结果码 5 6 # 加盐 7 cipher = hashlib.md5() 8 cipher.update('前盐'.encode('utf-8')) 9 cipher.update('需要加密的数据'.encode('utf-8')) 10 cipher.update('后盐'.encode('utf-8')) 11 print(cipher.hexdigest()) # 加密结果码 12 13 # 其他算法 14 cipher = hashlib.sha3_256(b'') 15 print(cipher.hexdigest()) 16 cipher = hashlib.sha3_512(b'') 17 print(cipher.hexdigest())
hmac 模块:加密
1 ## 2 3 ```python 4 # 必须加盐 5 cipher = hmac.new('盐'.encode('utf-8')) 6 cipher.update('数据'.encode('utf-8')) 7 print(cipher.hexdigest()) 8 ```
shell模块操作指令
"""
subprocess模块
sub 子
process 进程
什么是进程
正在进行中的程序 每当打开一个程序就会开启一个进程
每个进程包含运行程序所需的所有资源
正常情况下 不可以跨进程访问数据
但是有些情况写就需要访问别的进程数据 提供一个叫做管道的对象 专门用于跨进程通讯
作用:用于执行系统命令
常用方法
run 返回一个表示执行结果的对象
call 返回的执行的状态码
总结 subprocess的好处是可以获取指令的执行结果
subprocess执行指令时 可以在子进程中 这样避免造成主进程卡死
注意 管道的read方法和文件的read有相同的问题 read后光标会到文件末尾 导致第二次无法read到数据
"""
1 import subprocess 2 3 # subprocess.run('dir', shell=True) 4 5 order = subprocess.Popen('dir1', 6 shell=True, 7 # 存放指令执行成功的信息管道 8 stdout=subprocess.PIPE, 9 # 存放指令执行失败的信息管道 10 stderr=subprocess.PIPE 11 ) 12 print(order.stdout) 13 # success_msg = order.stdout.read().decode('GBK') 14 # print(success_msg) 15 # error_msg = order.stderr.read().decode('GBK') 16 # print(error_msg) 17 # 实际项目中,会接着对success_msg加以分析处理 18 19 20 order = subprocess.run('dir', 21 shell=True, 22 # 存放指令执行成功的信息管道 23 stdout=subprocess.PIPE, 24 # 存放指令执行失败的信息管道 25 stderr=subprocess.PIPE 26 ) 27 print(order.stdout) 28 # success_msg = order.stdout.decode('GBK') 29 # print(success_msg) 30 # error_msg = order.stderr.decode('GBK') 31 # print(error_msg)