filebeat的使用和kibana出圖07
阿新 • • 發佈:2020-08-18
hashlib:封裝了一些用於加密的類
常用加密演算法:md5:檔案校驗,比如已知道伺服器上的安裝包的sha值,在本地檢測下載好的檔案的sha值是否一致
sha系列:金融類,安全類,對安全性要求較高的企業。隨著sha系列數字越高,加密越複雜,越不容易破解,但是耗時越長
特點:1.把一個大的資料,切分成不同塊,分別對不同的塊進行加密,
再彙總的結果和直接對整體資料加密的結果是一致的
2.單向加密,不可逆
3.原始資料的一點小的變化,將導致結果的非常大的差異,即'雪崩效應'
加密演算法的基本步驟:
1.獲取一個加密物件
2.使用加密物件的update方法,進行加密,update方法可以呼叫多次
3.通常通過hexdigest方法獲取加密結果
驗證:兩個數據兩次加密的結果對比,
如果結果相同,說明資料相同
MD5演算法程式碼展示:
import hashlib # 1.獲取一個加密物件(可以直接在引數中新增資料物件而不需要使用update,結果是一樣的) m = hashlib.md5() # 2.使用加密物件的update,對轉換成bytes的資料型別進行加密 m.update(b'abc') # 3.通過hexdigest獲取加密結果 res = m.hexdigest() print(res, len(res))
sha系列演算法程式碼展示:
s = hashlib.sha224() s.update(b'abc') print(s.hexdigest(), len(s.hexdigest())) # 不同的加密演算法,實際上是加密結果長度的不同
必要時我們需要使加密過程更復雜化,這裡就涉及到了一個概念‘加鹽’
import hashlib s = 'Python' m = hashlib.md5('sault'.encode('utf-8')) # 這裡的鹽我用sault指代,可以任意指定 # 原資料拆分成不同的塊,分塊加密,最後的加密結果是一致的 m.update('Py'.encode('utf-8')) m.update('thon'.encode('utf-8')) print(m.hexdigest())
s1 = 'happiness'
m = hashlib.md5('sault'[::2].encode('utf-8')) # 這裡我對某個資料型別進行切片,使'鹽'更動態化
m.update(s1.encode('utf-8'))
print(m.hexdigest())