hashlib 和loggin模塊

 

1.摘要算法hashlib

1. md5加密

#1. 摘要算法

#md5加密算法  32位
import  hashlib
username ="alex"
md5_obj =hashlib.md5()
# md5_obj =hashlib.md5("加鹽".encode("utf-8"))  #加鹽操做.
# md5_obj =hashlib.md5(username.encode("utf-8"))  #加鹽操做.
md5_obj.update(b"alex") #使用md5摘要算法對 alex進行摘要 必須是bytes類型進行摘要.
res =md5_obj.hexdigest()  #獲取摘要的結果.
print(res)
#結果:534b44a19bf18d20b71ecc4eb77c572f


#sha1加密算法 40位
import  hashlib
md5_obj =hashlib.sha1()
md5_obj.update(b"alex") #使用md5摘要算法對 alex進行摘要 必須是bytes類型進行摘要.
res =md5_obj.hexdigest()  #獲取摘要的結果.
print(res)
#結果 60c6d277a8bd81de7fdde19201bf9c58a3df08f4

2.文件校驗操做

#2. 文件校驗操做

with open("mengbin","rb") as f :
    md5_obj =hashlib.md5()
    md5_obj.update(f.read())
    res =md5_obj.hexdigest()
    print(res)
    #摘要結果爲:c7d6ca99c0c7a9e5beb0431b98e5ff11


with open("mengbin","rb") as f :
    md5_obj =hashlib.md5()
    for line in f:
        md5_obj.update(line)
    res =md5_obj.hexdigest()
    print(res)
    #摘要結果爲:c7d6ca99c0c7a9e5beb0431b98e5ff11

#結論:update操做能夠在hexdigest以前執行屢次,分次對一個長字符串進行校驗 ,結果是對整個長字符串的摘要結果.

 

2.logging模塊

#4. logging 模塊
import logging

logging.basicConfig(level=logging.DEBUG) #設置等級 . 默認是warning往上的信息.

# DEBUG:root:debug message
# INFO:root:info message
# WARNING:root:warning message
# ERROR:root:error message
# CRITICAL:root:critical message


#調試
logging.debug("debug message")

#信息
logging.info("info message")

#警告
logging.warning("warning message")

#錯誤
logging.error("error message")

#嚴重錯誤
logging.critical("critical message")

 

3.logging案例

import logging

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename='test.log',
                    filemode='a')

logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

相關文章
相關標籤/搜索