成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

[[393258]]

前言

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

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

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

  1. import hashlib 
  2. a=hashlib.algorithms_available  
  3. b=hashlib.algorithms_guaranteed 
  4. print(a) 
  5. 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)制字符串表示。

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

二、sha1

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

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

三、sha224

安全散列算法

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

四、sha256

安全散列算法

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

五、sha384

安全散列算法

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

六、sha512

安全散列算法

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

七、高級(jí)加密

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

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

總結(jié)

 

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

 

責(zé)任編輯:武曉燕 來(lái)源: Python爬蟲(chóng)與數(shù)據(jù)挖掘
相關(guān)推薦

2022-06-27 18:54:54

Python爬蟲(chóng)加密算法

2023-10-16 19:05:20

2025-03-11 08:10:00

加密數(shù)據(jù)安全數(shù)據(jù)保護(hù)

2021-11-22 23:20:01

加密算法架構(gòu)

2020-05-08 11:13:28

Python數(shù)據(jù)技術(shù)

2024-04-28 11:22:18

2022-06-01 09:00:56

加密算法密鑰

2024-12-31 08:00:00

SpringBoot開(kāi)發(fā)加密

2009-08-13 18:12:11

C#數(shù)據(jù)加密

2012-09-13 09:58:38

2020-12-16 05:46:58

算法加密算法MD5

2023-08-02 07:27:53

2020-09-24 10:50:53

加密解密語(yǔ)言hmac

2009-08-04 11:08:33

ASP.NET數(shù)據(jù)加密

2010-09-09 10:06:56

Zigbee協(xié)議棧加密算法

2023-07-30 17:44:24

CryptoJS加密字符串

2009-08-21 15:02:31

C#加密算法

2011-08-18 12:12:29

2018-07-10 10:29:27

2022-11-09 08:24:39

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产一区欧美 | 天天狠狠 | 成人亚洲精品久久久久软件 | 久久国产欧美日韩精品 | 欧美 日韩 国产 成人 在线 91 | 日韩av在线免费 | 国产中文一区二区三区 | 婷婷在线视频 | 欧美中文一区 | 992tv人人草 久久精品超碰 | 日本超碰在线 | 成年人在线播放 | 久久久久国色av免费观看性色 | 天天操夜夜操 | 国内精品久久久久久久 | 国产精品久久av | av免费在线播放 | 久久国产传媒 | 亚洲视频区 | 国产亚洲精品a | 国产高清自拍视频在线观看 | 欧洲一区二区三区 | 99久久久国产精品免费消防器 | 成人av在线网站 | av黄色在线 | 亚洲成人中文字幕 | 国产精品一区一区三区 | 精品欧美乱码久久久久久1区2区 | 永久免费av | 蜜桃视频麻豆 | 国产精品一区二区福利视频 | 亚洲精品久久久久久国产精华液 | 亚洲三级免费看 | 黄色一级大片在线免费看产 | 国产一区二区在线播放 | 日韩在线精品 | 亚洲一区二区三区免费观看 | 中文字幕精品一区 | 欧美黄色片 | 一区二区三区视频在线观看 | 日韩综合在线 |