日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?hashlib模塊與subprocess模塊使用詳細介紹_python

作者:Python熱愛者 ? 更新時間: 2022-11-23 編程語言

1、什么是哈希hash

hash一類算法,該算法接受傳入的內容,經過運算得到一串hash值

hash值的特點:

  • 只要傳入的內容一樣,得到的hash值必然一樣
  • 不能由hash值返解成內容
  • 不管傳入的內容有多大,只要使用的hash算法不變,得到的hash值長度是一定

2、hash的用途

用途1:特點II用于密碼密文傳輸與驗證

用途2:特點I、III用于文件完整性校驗

3、如何用

import hashlib
m=hashlib.md5()
m.update('hello'.encode('utf-8'))
m.update('world'.encode('utf-8'))
res=m.hexdigest() # 'helloworld'
print(res)
m1=hashlib.md5('he'.encode('utf-8'))
m1.update('llo'.encode('utf-8'))
m1.update('w'.encode('utf-8'))
m1.update('orld'.encode('utf-8'))
res=m1.hexdigest()# 'helloworld'
print(res)

模擬撞庫

cryptograph='aee949757a2e698417463d47acac93df'
import hashlib
# 制作密碼字段
passwds=[
    'alex3714',
    'alex1313',
    'alex94139413',
    'alex123456',
    '123456alex',
    'a123lex',
]
dic={}
for p in passwds:
    res=hashlib.md5(p.encode('utf-8'))
    dic[p]=res.hexdigest()
# 模擬撞庫得到密碼
for k,v in dic.items():
    if v == cryptograph:
        print('撞庫成功,明文密碼是:%s' %k)
        break

提升撞庫的成本=>密碼加鹽

import hashlib
m=hashlib.md5()
m.update('天王'.encode('utf-8'))
m.update('alex3714'.encode('utf-8'))
m.update('蓋地虎'.encode('utf-8'))
print(m.hexdigest())

4、subprocess模塊

subprocess使用當前系統默認編碼,得到結果為bytes類型,在windows下需要用gbk解碼

import subprocess
obj=subprocess.Popen('echo 123 ; ls / ; ls /root',shell=True,
                 stdout=subprocess.PIPE,  #正確的管道
                 stderr=subprocess.PIPE, #錯誤的管道
                 )
# print(obj)
# res=obj.stdout.read()
# print(res.decode('utf-8'))
err_res=obj.stderr.read()
print(err_res.decode('gbk')) #  windows下需要用gbk解碼mac、linux用utf-8解碼

原文鏈接:https://blog.csdn.net/qdPython/article/details/127013075

欄目分類
最近更新