最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

在程序中我們經(jīng)常可以看到有很多的加密算法,比如說(shuō)MD5 sha1等,今天我們就來(lái)了解下這下加密算法的吧,在了解之前我們需要知道一個(gè)模塊嘛就是hashlib,他就是目前Python一個(gè)提供字符加密的模塊,它加密的字符類型為二進(jìn)制編碼,所以直接加密字符串會(huì)報(bào)錯(cuò)。

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)

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

一、MD5

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

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

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

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

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

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

MD5的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的十六進(jìn)制數(shù)字串)。MD5是最常見(jiàn)的摘要算法,速度很快,生成結(jié)果是固定的128 bit字節(jié),通常用一個(gè)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é),通常用一個(gè)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)

七、高級(jí)加密

以上加密算法雖然依然非常厲害,但時(shí)候存在缺陷,即:通過(guò)撞庫(kù)可以反解。所以,有必要對(duì)加密算法中添加自定義key再來(lái)做加密。

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

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

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

相關(guān)文章

  • Python用list或dict字段模式讀取文件的方法

    Python用list或dict字段模式讀取文件的方法

    這篇文章主要給大家介紹了Python利用list字段模式或者dict字段模式讀取文件的方法,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友可以跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • python下載微信公眾號(hào)相關(guān)文章

    python下載微信公眾號(hào)相關(guān)文章

    這篇文章主要為大家詳細(xì)介紹了python下載微信公眾號(hào)相關(guān)文章的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • pytest官方文檔解讀fixtures調(diào)用fixtures及fixture復(fù)用性

    pytest官方文檔解讀fixtures調(diào)用fixtures及fixture復(fù)用性

    這篇文章主要為大家介紹了pytest官方文檔解讀fixtures調(diào)用fixtures及fixture復(fù)用性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python編碼時(shí)應(yīng)該注意的幾個(gè)情況

    Python編碼時(shí)應(yīng)該注意的幾個(gè)情況

    對(duì)于Python程序員,你需要注意一下本文所提到的這些事情。你也可以看看Zen of Python(Python之禪),這里面提到了一些注意事項(xiàng),并配以示例,可以幫助你快速提高
    2013-03-03
  • python中Apriori算法實(shí)現(xiàn)講解

    python中Apriori算法實(shí)現(xiàn)講解

    給大家詳細(xì)講解一下Apriori 算法在python中的實(shí)現(xiàn)過(guò)程,有需要的朋友收藏一下本片文章吧。
    2017-12-12
  • Python gevent協(xié)程切換實(shí)現(xiàn)詳解

    Python gevent協(xié)程切換實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python gevent協(xié)程切換實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Python如何使用函數(shù)做字典的值

    Python如何使用函數(shù)做字典的值

    這篇文章主要介紹了Python如何使用函數(shù)做字典的值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python算法練習(xí)之抓交通肇事犯

    python算法練習(xí)之抓交通肇事犯

    這篇文章主要該大家分享python算法抓交通肇事犯得練習(xí),文章主要通過(guò)描述抓交通肇事犯得問(wèn)題然后確定程序框架將結(jié)果運(yùn)算出來(lái),下面來(lái)看詳細(xì)內(nèi)容吧,需要的朋友可以參考一下喲
    2021-10-10
  • 基于Python實(shí)現(xiàn)nc批量轉(zhuǎn)tif格式

    基于Python實(shí)現(xiàn)nc批量轉(zhuǎn)tif格式

    做項(xiàng)目有時(shí)會(huì)運(yùn)用到netCDF格式的氣象數(shù)據(jù),而ArcGIS中需要用柵格影像進(jìn)行處理,對(duì)于較多的文件,ArcGIS一個(gè)個(gè)手動(dòng)轉(zhuǎn)換過(guò)于繁瑣,因此我們采用Python進(jìn)行轉(zhuǎn)換,下面就是Python實(shí)現(xiàn)nc批量轉(zhuǎn)tif格式的示例代碼,希望對(duì)你有所幫助
    2022-08-08
  • 使用python更改Word文檔字體的操作代碼

    使用python更改Word文檔字體的操作代碼

    更改文字字體是編輯和美化Word文檔時(shí)的一項(xiàng)常見(jiàn)需求,使用合適的字體不僅可以提升文檔的整體視覺(jué)效果,還能突顯關(guān)鍵信息,本文將介紹如何通過(guò)Python代碼更改Word文檔字體,實(shí)現(xiàn)批量操作與自動(dòng)化,需要的朋友可以參考下
    2024-08-08

最新評(píng)論

正阳县| 徐州市| 稷山县| 沐川县| 安平县| 铜山县| 邳州市| 富锦市| 新巴尔虎右旗| 开封市| 湘潭市| 高密市| 阿城市| 庆云县| 大安市| 新乐市| 泽普县| 罗甸县| 千阳县| 湖北省| 法库县| 潞西市| 台中市| 盐源县| 武平县| 五家渠市| 疏勒县| 资溪县| 营口市| 永德县| 罗源县| 蒙自县| 朝阳市| 怀化市| 高安市| 保山市| 广水市| 景泰县| 宜丰县| 富顺县| 巴楚县|