python之hash模塊加密


1.什么是hash

    hash是一種算法,該算法接受傳入的內容,經過運算得到一串hash值

    1.如果把hash算法比喻為一座工廠

    2.那傳給hash算法的內容就是原材料

    3.生成的hash值就是生產出的產品

2.為何要用hash算法

    hash值/產品有三大特性:

    1.只要傳入的內容一樣,得到的hash值必然一樣

    2.只要我們使用是hash算法固定,無論傳入的內容有多大,得到的hash值的長度是固定

    3.不可以用hash值逆推出原來的內容

    基於1和2可以在下載文件時做文件一致性校驗

    基於1和3可以對密碼進行加密

 

import hashlib

兩種傳值方式:

    1.造出hash工廠

    m=hashlib.md5()                      #hashlib.sha512 :可以選擇不同的算法加密,不同的算法的加密結果的長度也會不一樣

    2.運送原材料

    m.update('你好啊’.encode('utf-8'))

    3.產出hash值

    print(m.hexdigest)

    

1.

   1.造出hash工廠

    m=hashlib.md5('你'.encode('utf-8'))

 

   2.運送原材料

    m.update('你好啊’.encode('utf-8'))

    3.產出hash值

    print(m.hexdigest)

 

應用一:文件一致性校驗

 

    1.造出hash工廠

    m=hashlib.md5()

    2.運送原材料

     with open(r'E:\01.mp4','rb') as f:
         for line in f:

             m.update(line)

    3.產出hash值

    print(m.hexdigest)

 

應用二:密碼加密

    m=hashlib.md5()

    m.update('天王蓋地虎'.encode('utf-8'))      #添加個暗號,提升密碼復雜度
    m.update(password.encode('utf-8'))
    print(m.hexdigest()) 

 

加密模塊另一個加密模塊 hmac

import hmac

m=hmac.new('小雞燉蘑菇'.encode('utf-8')) #用法跟hash一樣的用法,但必須要傳個值,增加密碼難度性
m.update('hello'.encode('utf-8'))
print(m.hexdigest())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM