1. 程式人生 > >hashlib,configparser,logging模塊

hashlib,configparser,logging模塊

文件 md5 value cti option imp round back bsp

一、常用模塊二

hashlib模塊

hashlib提供了常見的摘要算法,如md5和sha1等等。

那麽什麽是摘要算法呢?摘要算法又稱為哈希算法、散列算法。它通過一個函數,把任意長度的數據轉換為一個長度固定的數據串(通常用16進制的字符串表示)。

註意:摘要算法不是一個解密算法。(摘要算法,檢測一個字符串是否發生了變化)

應塗:1.做文件校驗

   2.登錄密碼

      密碼不能解密,但可以撞庫,用‘加鹽’的方法就可以解決撞庫的問題。所有以後設置密碼的時候要設置的復雜一點。

技術分享
 1 import hashlib
 2 # md5_obj = hashlib.md5()  未加鹽
 3 md5_obj = hashlib.md5(
nezha.encode(utf-8)) #加鹽後(就讓你的密碼更牢固了) 4 md5_obj.update(123456.encode(utf-8)) 5 print(md5_obj.hexdigest()) 6 md5_obj.update(hello.encode(utf-8)) 7 print(md5_obj.hexdigest()) 8 # ----------- 9 user = haiyan 10 password = 123456 11 md5_obj= hashlib.md5(user.encode(utf-8)) #加鹽(哪怕被人的密碼和你的密碼一樣,
12 # 那你加鹽以後就只有你的用戶名對應的是你的密碼了) 13 md5_obj.update(password.encode(utf-8)) 14 print(md5_obj.hexdigest())
用戶密碼 技術分享
 1 import hashlib
 2 md5_obj = hashlib.md5()
 3 import os
 4 filesize = os.path.getsize(filename)  #文件大小
 5 f = open(filename,rb)
 6 while filesize>0:
 7     if filesize > 1024:
8 content = f.read(1024) 9 filesize -= 1024 10 else: 11 content = f.read(filesize) 12 filesize -= filesize 13 md5_obj.update(content) 14 # for line in f: 15 # md5_obj.update(line.encode(‘utf-8‘)) 16 md5_obj.hexdigest()
文件校驗

configparser模塊

該模塊適用於配置文件的格式與windows ini文件類似,可以包含一個或多個節(section),每個節可以有多個參數(鍵=值)。

1.創建文件

技術分享
 1 import configparser
 2 config = configparser.ConfigParser()
 3 config["DEFAULT"] = {ServerAliveInterval: 45,
 4                       Compression: yes,
 5                      CompressionLevel: 9,
 6                      ForwardX11:yes
 7                      }
 8 config[bitbuck et.org] = {User:hg}
 9 config[topsecret.server.com] = {Host Port:50022,ForwardX11:no}
10 with open(example.ini, w) as configfile:
11    config.write(configfile)
創建文件

2.查找文件

技術分享
 1 import configparser
 2 config = configparser.ConfigParser()
 3 # print(config.sections())
 4 config.read(example.ini)
 5 print(config.sections())  #讀出來的是文件裏面的組,
 6 # 而且裏面的[DEFAULT]組沒有顯示出來
 7 print(bytebong.com in config) # False
 8 print(bitbucket.org in config) # True
 9 print(config[bitbucket.org]["user"])  # hg
10 print(config[DEFAULT][Compression]) #yes
11 print(config[topsecret.server.com][ForwardX11])  #no
12 print(config[bitbucket.org])          #<Section: bitbucket.org>
13 for key in config[bitbucket.org]:     # 註意,有default會默認default的鍵
14     print(key)
15 print(config.options(bitbucket.org))  # 同for循環,找到‘bitbucket.org‘下所有鍵
16 print(config.items(bitbucket.org))    #找到‘bitbucket.org‘下所有鍵值對
17 print(config.get(bitbucket.org,compression)) # yes       get方法Section下的key對應的value
查找文件

3.增刪改操作

技術分享
1 import configparser
2 config = configparser.ConfigParser()
3 config.read(example.ini)
4 config.add_section(yuan)
5 # config.remove_section(‘bitbucket.org‘) #刪除組
6 # config.remove_option(‘topsecret.server.com‘,"forwardx11") #刪除組裏面的項
7 config.set(topsecret.server.com,k1,11111)
8 config.set(yuan,k2,22222)
9 config.write(open(new2.ini, "w"))
增刪改操作

logging模塊

hashlib,configparser,logging模塊