1. 程式人生 > 實用技巧 >filebeat的使用和kibana出圖07

filebeat的使用和kibana出圖07

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())