加密演算法:
hash (152位)雜湊 雜湊 不可逆得 密碼背後就是 hash 程式退出hash 值就變了 ,hash值得結果有可能重複
md5 (128位) 訊息摘要演演算法 基於雜湊得 一種加密演算法 可產生128位得雜湊值 (hash value) 永遠都不會變
md5功能:
1.輸入任意長度的資訊,經過處理,輸出為128位的資訊(數字指紋);
2.不同的輸入得到的不同的結果(唯一性);
md5演算法的特點:
壓縮性:任意長度的資料,算出的md5值的長度都是固定的
容易計算:從原資料計算出md5值很容易
抗修改性:對原資料進行任何改動,修改乙個位元組生成的md5值區別也會很大
強抗碰撞:已知原資料和md5,想找到乙個具有相同md5值的資料(即偽造資料)是非常困難的。
md5不可逆的原因是其是一種雜湊函式,使用的是hash演算法,在計算過程中原文的部分資訊是丟失了的。
md5用途:
1.防止被篡改:
2.防止直接看到明文:
現在很多**在資料庫儲存使用者的密碼的時候都是儲存使用者密碼的md5值。這樣就算不法分子得到資料庫的使用者密碼的md5值,也無法知道使用者的密碼。(比如在unix系統中使用者的密碼就是以md5(或其它類似的演算法)經加密後儲存在檔案系統中。當使用者登入的時候,系統把使用者輸入的密碼計算成md5值,然後再去和儲存在檔案系統中的md5值進行比較,進而確定輸入的密碼是否正確。通過這樣的步驟,系統在並不知道使用者密碼的明碼的情況下就可以確定使用者登入系統的合法性。這不但可以避免使用者的密碼被具有系統管理員許可權的使用者知道,而且還在一定程度上增加了密碼被破解的難度。)
3.防止抵賴(數字簽名):
這需要乙個第三方認證機構。例如a寫了乙個檔案,認證機構對此檔案用md5演算法產生摘要資訊並做好記錄。若以後a說這檔案不是他寫的,權威機構只需對此檔案重新產生摘要資訊,然後跟記錄在冊的摘要資訊進行比對,相同的話,就證明是a寫的了。這就是所謂的「數字簽名」。
import hashlib
m = hashlib.md5()
m.update(b"hello")
m.update(b"it's me")
print(m.digest())
m.update(b"it's been a long time since last time we ...")
print(m.digest()) #2進製格式hash
print(len(m.hexdigest())) #16進製制格式hash
'''def digest(self, *args, **kwargs): # real signature unknown
""" return the digest value as a string of binary data. """
pass
def hexdigest(self, *args, **kwargs): # real signature unknown
""" return the digest value as a string of hexadecimal digits. """
pass
'''import hashlib
# ######## md5 ########
hash = hashlib.md5()
hash.update('admin')
print(hash.hexdigest())
# ######## sha1 ########
hash = hashlib.sha1()
hash.update('admin')
print(hash.hexdigest())
# ######## sha256 ########
hash = hashlib.sha256()
hash.update('admin')
print(hash.hexdigest())
# ######## sha384 ########
hash = hashlib.sha384()
hash.update('admin')
print(hash.hexdigest())
# ######## sha512 ########
hash = hashlib.sha512()
hash.update('admin')
print(hash.hexdigest())
加密模組hashlib
md5加密 不可逆加密 碰撞解密 用資料再進行一次加密,與原加密結果做匹配 import hashlib data 資料 這個必須是字串型別的,其他型別的不可以 lock obj hashlib.md5 data.encode utf 8 傳入加密資料,生產加密鎖物件,result lock obj...
加密模組hashlib模組
資料時代,為了防止資料安全性,防止資料洩露,會對資料進行加密,對於一些敏感資料庫,更是如此。加密是最常見的保密手段,利用技術手段把重要的資料變為亂碼。hash型別屬於雜湊型別,把任意長度的資料通過演算法函式轉換成固定長度的值,特點 不可逆 無法根據雜湊值來還原原來的資料 定長輸出 無論輸入的原始資料...
python加密模組 hashlib模組
用於加密相關的操作,3.x裡代替了md5模組和sha模組,主要提供sha1,sha224,sha256,sha384,sha512,md5演算法 sha比md5 更複雜 md5 不能反解 具體使用方法 匯入模組 import hashlib 生成乙個加密的物件並複製給變數 m hashlib.md5...