<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前言:
常見的加密演演算法基本分為這幾類:
MD5是一種被廣泛使用的線性雜湊演演算法,可以產生出一個128位元(16位元組)的雜湊值(hash value),用於確保資訊傳輸完整的一致性。且MD5加密之後產生的是一個固定長度(32位元或16位元)的資料。
常規講MD5是不存在解密的。但是理論上MD5是可以進行反向暴力破解的。暴力破解的大致原理就是用很多不同的資料進行加密後跟已有的加密資料進行對比,由此來尋找規律。理論上只要資料量足夠龐大MD5是可以被破解的。但是要注意,破解MD5是需要考慮破解的成本(時間和機器效能)。假設破解當前的MD5密碼需要目前計算能力最優秀的計算機工作100年才能破解完成。那麼當前的MD5密碼就是安全的。
使用一段無意義且隨機的私匙進行MD5加密會生成一個加密串,我們暫且稱之為串1
將要加密的的資料跟串1拼接,再進行一次MD5,這時會生成串2
將串2再次進行MD5加密,這時生成的串3就是我們加密後的資料。
我們在註冊賬號時的密碼一般都是用的MD5加密:
import hashlibh = hashlib.md5() str = 'boboadmin' h.update(str.encode()) msg = h.hexdigest() print(msg)
SHA1比MD5的安全性更強,但也比MD5慢
import hashlib sha1 = hashlib.sha1() data = '2333333' sha1.update(data.encode('utf-8')) sha1_data = sha1.hexdigest() print(sha1_data)
Base64是一種用64個字元來表示任意二進位制資料的方法。base64是一種編碼方式而不是加密演演算法。只是看上去像是加密而已。
Base64使用A–Z,a–z,0–9,+,/ 這64個字元實現對資料進行加密。
import base64 str='admin' str=str.encode('utf-8') #加密 bs64=base64.b64encode(str) print(bs64) #解密 debs64=base64.b64decode(bs64) print(debs64.decode())
DES全稱為Data Encryption Standard,即資料加密標準,是一種使用金鑰加密的演演算法。該加密演演算法是一種對稱加密方式,其加密運算、解密運算需要使用的是同樣的金鑰(一組字串)即可。
注意:
現在用AES這個標準來替代原先的DES。
加密後密文長度的不同:
應用場景的不同:
#需要下載安裝pyDes模組 import binascii from pyDes import des, CBC, PAD_PKCS5 def des_encrypt(secret_key,s): iv = secret_key k = des(secret_key,CBC,iv,pad=None,padmode=PAD_PKCS5) en = k.encrypt(s,padmode=PAD_PKCS5) return binascii.b2a_hex(en) def des_decrypt(secret_key, s): iv = secret_key k = des(secret_key,CBC,iv,pad = None,padmode = PAD_PKCS5) de = k.decrypt(binascii.a2b_hex(s),padmode = PAD_PKCS5) return desecret_str = des_encrypt('12345678', 'I love YOU~') print(secret_str) clear_str = des_decrypt('12345678', secret_str) print(clear_str)
RSA加密:
RSA加密演演算法是一種非對稱加密演演算法。在公開金鑰加密和電子商業中RSA被廣泛使用。
非對稱加密演演算法需要兩個金鑰:
注意:
- 使用時都是使用公匙加密使用私匙解密。公匙可以公開,私匙自己保留。
- 演演算法強度複雜、安全性依賴於演演算法與金鑰但是由於其演演算法複雜,而使得加密解密速度沒有對稱加密解密的速度快。
公私匙可以線上生成:
[http://web.chacuo.net/netrsakeypair]
import rsa def rsaEncrypt(str): (pubkey,privkey)=rsa.newkeys(512) print("pub:",pubkey) print("priv:",privkey) content =str.encode('utf-8') crypto=rsa.encrypt(content,pubkey) return (crypto,privkey) def rsaDecrypt(str,pk): content = rsa.decrypt(str,pk) con=content.decode('utf-8') return con (deData,privKey)=rsaEncrypt("hello") print('加密後的密文',deData) content = rsaDecrypt(deData,privKey) print(content)
到此這篇關於Python常見的幾種資料加密方式的文章就介紹到這了,更多相關Python 資料加密內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45