欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

盤點(diǎn)Python加密解密模塊hashlib的7種加密算法(推薦)

 更新時間:2021年04月15日 10:21:15   作者:51CTO  
這篇文章主要介紹了盤點(diǎn)Python加密解密模塊hashlib的7種加密算法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

在程序中我們經(jīng)??梢钥吹接泻芏嗟募用芩惴?,比如說MD5 sha1等,今天我們就來了解下這下加密算法的吧,在了解之前我們需要知道一個模塊嘛就是hashlib,他就是目前Python一個提供字符加密的模塊,它加密的字符類型為二進(jìn)制編碼,所以直接加密字符串會報錯。

import hashlib 
string='任性的90后boy' 
#使用encode進(jìn)行轉(zhuǎn)換 
sha1 = hashlib.sha1() 
sha1.update(string.encode('utf-8')) 
res = sha1.hexdigest() 
print("sha1采用encode轉(zhuǎn)換加密結(jié)果:",res) 
#使用byte轉(zhuǎn)換為二進(jìn)制 
sha1 = hashlib.sha1() 
sha1.update(bytes(string,encoding='utf-8')) 
res = sha1.hexdigest() 
print("sha1采用byte轉(zhuǎn)換的結(jié)果:",res)

可以使用下列這兩種方法任意一種獲取到hashlib中所有的散列算法集合:

import hashlib 
a=hashlib.algorithms_available  
b=hashlib.algorithms_guaranteed 
print(a) 
print(b)

下面我們挑選常用的集中算法來進(jìn)行講解。

一、MD5

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致。是計算機(jī)廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現(xiàn)。將數(shù)據(jù)(如漢字)運(yùn)算為另一固定長度值,是雜湊算法的基礎(chǔ)原理,MD5的前身有MD2、MD3和MD4。

MD5算法具有以下特點(diǎn):

1、壓縮性:任意長度的數(shù)據(jù),算出的MD5值長度都是固定的。

2、容易計算:從原數(shù)據(jù)計算出MD5值很容易。

3、抗修改性:對原數(shù)據(jù)進(jìn)行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。

4、強(qiáng)抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。

MD5的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的十六進(jìn)制數(shù)字串)。MD5是最常見的摘要算法,速度很快,生成結(jié)果是固定的128 bit字節(jié),通常用一個32位的16進(jìn)制字符串表示。

import hashlib 
string='任性的90后boy' 
md5 = hashlib.md5()  
md5.update(string.encode('utf-8'))#轉(zhuǎn)碼,update里的必須是字節(jié)型 
res = md5.hexdigest() #返回字符型摘要信息 
print(md5.digest())#返回字節(jié)型的摘要信息 
print("md5加密結(jié)果:",res)

二、sha1

安全散列算法,SHA1的結(jié)果是160 bit字節(jié),通常用一個40位的16進(jìn)制字符串表示

import hashlib 
string='任性的90后boy' 
sha1 = hashlib.sha1() 
sha1.update(string.encode('utf-8')) 
res = sha1.hexdigest() 
print("sha1加密結(jié)果:",res)

三、sha224

安全散列算法

import hashlib 
string='任性的90后boy' 
sha224 = hashlib.sha224() 
sha224.update(string.encode('utf-8')) 
res = sha224.hexdigest() 
print("sha224加密結(jié)果:",res)

四、sha256

安全散列算法

import hashlib 
string='任性的90后boy' 
sha256 = hashlib.sha256() 
sha256.update(string.encode('utf-8')) 
res = sha256.hexdigest() 
print("sha256加密結(jié)果:",res)

五、sha384

安全散列算法

import hashlib 
string='任性的90后boy' 
sha384 = hashlib.sha384() 
sha384.update(string.encode('utf-8')) 
res = sha384.hexdigest() 
print("sha384加密結(jié)果:",res)

六、sha512

安全散列算法

import hashlib 
string='任性的90后boy' 
sha512= hashlib.sha512() 
sha512.update(string.encode('utf-8')) 
res = sha512.hexdigest() 
print("sha512加密結(jié)果:",res)

七、高級加密

以上加密算法雖然依然非常厲害,但時候存在缺陷,即:通過撞庫可以反解。所以,有必要對加密算法中添加自定義key再來做加密。

md5 = hashlib.md5() 
md5.update('md5'.encode('utf-8')) 
res = md5.hexdigest() 
print("普通加密:",res) 
md51 = hashlib.md5(b'md512') 
md51.update('md51'.encode('utf-8')) 
res = md51.hexdigest() 
print("采用key加密:",res)

總結(jié)

好了,今天就跟大家說這么多,主要給大家介紹了md5、sha1、sha224、sha256、sha384、sha512和高級加密等集中算法,簡單介紹了每個算法的特點(diǎn)和使用方法,后續(xù)精彩敬請期待!

到此這篇關(guān)于盤點(diǎn)Python加密解密模塊hashlib的7種加密算法的文章就介紹到這了,更多相關(guān)Python hashlib加密解密模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python OS模塊常用函數(shù)說明

    Python OS模塊常用函數(shù)說明

    這篇文章主要介紹了Python OS模塊常用函數(shù)說明,本文列出了一些在os模塊中比較有用的部分函數(shù),它們中的大多數(shù)都簡單明了,需要的朋友可以參考下
    2015-05-05
  • python 實現(xiàn)按對象傳值

    python 實現(xiàn)按對象傳值

    今天小編就為大家分享一篇python 實現(xiàn)按對象傳值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 簡單的Python人臉識別系統(tǒng)

    簡單的Python人臉識別系統(tǒng)

    這篇文章主要介紹了Python人臉識別系統(tǒng)的實現(xiàn),文中講解非常詳細(xì),代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • PyQt編程之如何在屏幕中央顯示窗體的實例

    PyQt編程之如何在屏幕中央顯示窗體的實例

    今天小編就為大家分享一篇PyQt編程之如何在屏幕中央顯示窗體的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • opencv模板匹配相同位置去除重復(fù)的框

    opencv模板匹配相同位置去除重復(fù)的框

    這篇文章主要介紹了opencv模板匹配相同位置去除重復(fù)的框,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python學(xué)習(xí)實操案例(二)

    python學(xué)習(xí)實操案例(二)

    這篇文章主要介紹了python學(xué)習(xí)實操案例,主要實操內(nèi)容有二進(jìn)制轉(zhuǎn)換、為自己手機(jī)充值、、計算能量的消耗等,需要的小伙伴可以參考一下
    2022-02-02
  • Python 和 JS 有哪些相同之處

    Python 和 JS 有哪些相同之處

    Python 是一門運(yùn)用很廣泛的語言,自動化腳本、爬蟲,甚至在深度學(xué)習(xí)領(lǐng)域也都有 Python 的身影。下面通過本文給大家介紹Python 和 JS 有哪些相同之處,需要的朋友參考下吧
    2017-11-11
  • 深入解析Python中的多進(jìn)程

    深入解析Python中的多進(jìn)程

    這篇文章主要介紹了深入解析Python中的多進(jìn)程,“Python中的多進(jìn)程是通過multiprocessing包來實現(xiàn)的,和多線程的threading.Thread差不多,它可以利用multiprocessing.Process對象來創(chuàng)建一個進(jìn)程對象
    2022-06-06
  • Python實現(xiàn)K-近鄰算法的示例代碼

    Python實現(xiàn)K-近鄰算法的示例代碼

    k-近鄰算法(K-Nearest Neighbour algorithm),又稱 KNN 算法,是數(shù)據(jù)挖掘技術(shù)中原理最簡單的算法。本文將介紹實現(xiàn)K-近鄰算法的示例代碼,需要的可以參考一下
    2022-09-09
  • 使用Python實現(xiàn)合并多個Excel文件

    使用Python實現(xiàn)合并多個Excel文件

    合并Excel可以將多個文件中的數(shù)據(jù)合并到一個文件中,這樣可以幫助我們更好地匯總和管理數(shù)據(jù),本文主要介紹了如何使用第三方Python庫 Spire.XLS for Python 實現(xiàn)以上兩種合并Excel文件的需求,有需要的可以了解下
    2023-12-12

最新評論