Python加密方法基本庫



背景git


    小編以前在作廣告接口自動化時,涉及到參數加密解密的邏輯,當時只知道MD5加密,後來從網上查了相關的方法,發現加密算法庫有好多,小編特地收集整理以下,但願對你們有所幫助。web




MD5加密算法


    算法描述:安全

    MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被普遍使用的密碼散列函數,能夠產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致。md5加密算法是不可逆的,因此解密通常都是經過暴力窮舉方法,經過網站的接口實現解密。微信


   實踐demo:
函數

    import hashlib測試

    m = hashlib.md5()網站

    m.update(str.encode("utf8"))加密

    print(m.hexdigest())spa


    註釋事項:

    一、update方法只接受bytes類型,不然會報錯;這就是要在字符串傳入後轉換類型的緣由。

    二、重複調用update(arg)方法,是會將傳入的arg參數進行拼接,

    也就是說,m.update(a); m.update(b) 等價於m.update(a+b)。





SHA1加密


    算法描述:

   安全哈希算法(Secure Hash Algorithm)主要適用於數字簽名標準(Digital Signature Standard DSS)裏面定義的數字簽名算法(Digital Signature Algorithm DSA),SHA1比MD5的安全性更強。對於長度小於2^ 64位的消息,SHA1會產生一個160位的消息摘要。


    實踐demo:  

    import  hashlib

    sha1 = hashlib.sha1()

    num= '521'

    sha1.update(num.encode('utf-8'))

    sha1_num = sha1.hexdigest()

    print(sha1_num)


    註釋事項:

    一、update方法只接受bytes類型,不然會報錯;同md5加密。

    二、重複調用update(arg)方法,同md5加密,多個參數拼接。




HMAC加密


    算法描述:

    散列消息鑑別碼(Hash Message Authentication Code), HMAC加密算法是一種安全的基於加密hash函數和共享密鑰的消息認證協議。實現原理是用公開函數和密鑰產生一個固定長度的值做爲認證標識,用這個標識鑑別消息的完整性。使用一個密鑰生成一個固定大小的小數據塊,即 MAC,並將其加入到消息中,而後傳輸。接收方利用與發送方共享的密鑰進行鑑別認證等。


    實踐demo:  

    import hmac

    message = b'Hello world'

    key = b'secret'

    h = hmac.new(key,message,

digestmod='MD5')

    print(h.hexdigest())


    註釋事項:

    一、hmac.new方法前兩個參數都是bytes類型,不然會報錯;




DES加密


   算法描述:

   數據加密標準(Data Encryption Standard),屬於對稱加密算法。DES是一個分組加密算法,典型的DES以64位爲分組對數據加密,加密和解密用的是同一個算法。它的密鑰長度是56位(由於每一個第8 位都用做奇偶校驗),密鑰能夠是任意的56位的數,並且能夠任意時候改變。


    實踐demo:

    from pyDes import des, CBC, PAD_PKCS5

    import binascii


    # 祕鑰

    KEY='mHAxsLYz'

    def des_encrypt(s):

    #加密

    secret_key = KEY

    iv = secret_key

    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)

    en = k.encrypt(s, padmode=PAD_PKCS5)

    return binascii.b2a_hex(en)

    

    def des_descrypt(s):

    #解密

    secret_key = KEY

    iv = secret_key

    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)

    de = k.decrypt(binascii.a2b_hex(s), 

padmode=PAD_PKCS5)

    return de

    if __name__ == "__main__"

    encrypt_str=des_encrypt('testsogou')

    print(encrypt_str)

    decrypt_str=des_decrypt(encrypt_str)

    print(decrypt_str)


    註釋事項:

    一、des_encrypt返回的爲加密後的16進制字符串;

    二、des_descrypt返回的爲解密後字符串。



小結


    本期簡單介紹MD5加密,SHA1加密,HMAC加密,DES加密這幾種算法,感興趣的小夥伴能夠研究下,下期介紹AES加密、RSA加密、ECC加密算法,敬請期待!

搜狗測試微信號:Qa_xiaoming

搜狗測試QQ粉絲羣:459645679


本文分享自微信公衆號 - 搜狗測試(SogouQA)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索