濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 盤(pán)點(diǎn)Python加密解密模塊hashlib的7種加密算法(推薦)

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

熱門(mén)標(biāo)簽:電話(huà)外呼系統(tǒng)招商代理 看懂地圖標(biāo)注方法 淮安呼叫中心外呼系統(tǒng)如何 京華圖書(shū)館地圖標(biāo)注 佛山通用400電話(huà)申請(qǐng) 打印谷歌地圖標(biāo)注 蘇州人工外呼系統(tǒng)軟件 電話(huà)機(jī)器人貸款詐騙 廣東旅游地圖標(biāo)注

前言

在程序中我們經(jīng)??梢钥吹接泻芏嗟募用芩惴?,比如說(shuō)MD5 sha1等,今天我們就來(lái)了解下這下加密算法的吧,在了解之前我們需要知道一個(gè)模塊嘛就是hashlib,他就是目前Python一個(gè)提供字符加密的模塊,它加密的字符類(lèi)型為二進(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)于盤(pán)點(diǎn)Python加密解密模塊hashlib的7種加密算法的文章就介紹到這了,更多相關(guān)Python hashlib加密解密模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python排序算法的簡(jiǎn)單實(shí)現(xiàn)方法
  • Python實(shí)現(xiàn)K-means聚類(lèi)算法并可視化生成動(dòng)圖步驟詳解
  • 用Python給圖像算法做個(gè)簡(jiǎn)單應(yīng)用界面
  • python利用K-Means算法實(shí)現(xiàn)對(duì)數(shù)據(jù)的聚類(lèi)案例詳解
  • Python機(jī)器學(xué)習(xí)之Kmeans基礎(chǔ)算法
  • Python自然語(yǔ)言處理之切分算法詳解
  • python入門(mén)之算法學(xué)習(xí)
  • python實(shí)現(xiàn)線性回歸算法
  • Python實(shí)現(xiàn)七大查找算法的示例代碼
  • 詳解Python牛頓插值法

標(biāo)簽:衡水 股票 駐馬店 湖州 江蘇 畢節(jié) 中山 呼和浩特

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《盤(pán)點(diǎn)Python加密解密模塊hashlib的7種加密算法(推薦)》,本文關(guān)鍵詞  盤(pán)點(diǎn),Python,加密解密,模塊,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《盤(pán)點(diǎn)Python加密解密模塊hashlib的7種加密算法(推薦)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于盤(pán)點(diǎn)Python加密解密模塊hashlib的7種加密算法(推薦)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    建水县| 太湖县| 湖口县| 宁阳县| 桦甸市| 图木舒克市| 塘沽区| 揭东县| 淅川县| 大同市| 古丈县| 于田县| 乡宁县| 镇平县| 措勤县| 闵行区| 来凤县| 伊宁县| 建昌县| 花垣县| 武胜县| 吴旗县| 九龙城区| 门头沟区| 花莲县| 都匀市| 宁武县| 开化县| 鸡泽县| 鄂托克前旗| 柯坪县| 遵义市| 定边县| 黄浦区| 商城县| 汉阴县| 平和县| 翼城县| 石首市| 巴里| 抚宁县|