久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:103日期:2022-06-22 14:09:36
前言

在程序中我們經(jīng)常可以看到有很多的加密算法,比如說MD5 sha1等,今天我們就來了解下這下加密算法的吧,在了解之前我們需要知道一個(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)

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

一、MD5

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致。是計(jì)算機(jī)廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有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é)果是固定的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í)候存在缺陷,即:通過撞庫可以反解。所以,有必要對(duì)加密算法中添加自定義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和高級(jí)加密等集中算法,簡(jiǎn)單介紹了每個(gè)算法的特點(diǎn)和使用方法,后續(xù)精彩敬請(qǐng)期待!

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日本黄色大片免费观看 | 99热在线播放 | 精品一区二区三区在线视频 | 成人性大片免费观看网站 | 国产在线日韩 | 国产精品毛片一区二区三区 | 视频在线91 | 日韩在线精品 | 成人看片在线观看 | 欧美日韩国产影院 | 成人久久18免费观看 | 日韩精品中文字幕在线观看 | 国产99久久久久久免费看农村 | 毛片国产 | 午夜欧美一区二区三区在线播放 | 成人午夜电影在线 | 999在线观看视频 | 精品国产乱码一区二区三 | 欧美视频一级 | 国产污视频在线 | 欧美韩日 | 欧美日韩电影一区二区三区 | 日干夜操| 亚洲美女一区二区三区 | 日韩免费网站 | 久久久夜夜夜 | 成人做爰9片免费视频 | 欧美xxxx网站 | 国产精品精品视频一区二区三区 | 曰批视频在线观看 | 日本一区二区三区免费观看 | 精品国产乱码久久久久久影片 | 亚洲精彩视频在线 | 国产精品自拍视频 | 日日操综合 | 日韩精品一区二区三区中文字幕 | 亚洲一区在线日韩在线深爱 | 超碰av在线 | 久久男人| 国产精品久久久久久av公交车 | 精品国产欧美 |