python3 常見解密加密算法實(shí)例分析【base64、MD5等】
本文實(shí)例講述了python3 常見解密加密算法。分享給大家供大家參考,具體如下:
一.使用base64
Base64編碼,64指A-Z、a-z、0-9、+和/這64個(gè)字符,還有“=”號(hào)不屬于編碼字符,而是填充字符。
優(yōu)點(diǎn):方法簡(jiǎn)單
缺點(diǎn):不保險(xiǎn),別人拿到密文可以自己解密出明文
編碼原理:將3個(gè)字節(jié)轉(zhuǎn)換成4個(gè)字節(jié)((3 X 8)=24=(4X6)),先讀入3個(gè)字節(jié),每讀一個(gè)字節(jié),左移8位,再右移四次,每次6位,這樣就有4個(gè)字節(jié)了。
解碼原理:將4個(gè)字節(jié)轉(zhuǎn)換成3個(gè)字節(jié),先讀入4個(gè)6位(用或運(yùn)算),每次左移6位,再右移3次,每次8位,這樣就還原了。
Python3中base64模塊與Python2使用方法有了明顯的不一樣,接下來簡(jiǎn)要介紹下base64模塊。
Python 3.5.2+ (default, Aug 5 2016, 08:07:14)
[GCC 6.1.1 20160724] on linux
Type "help", "copyright", "credits" or "license" for more information.
首先導(dǎo)入base64模塊
>>> import base64 >>> my_str='hello'
然后把字符串轉(zhuǎn)碼為UTF-8格式:
>>> utf_str=my_str.encode(encoding="utf-8") >>> utf_str b'hello'
我們?cè)囍肂ase64方式加密:
>>> word=base64.b64encode(utf_str) >>> word b'aGVsbG8='
最后用Base64方式解密:
>>> hello=base64.b64decode(word.decode()) >>> hello b'hello' >>> hello.decode() 'hello'
可以看到,已經(jīng)成功解密出來!
二.使用pycrypto
Python有個(gè)專門的加密解密工具包pycropto,這個(gè)包里面實(shí)現(xiàn)了MD2,MD4,MD5,RIPEMD,SHA1,SHA256等加密算法。
>>> from Crypto.Hash import MD5 >>> obj = MD5.new() >>> obj.update(b"hello") >>> obj.hexdigest() >>> obj.hexdigest() '5d41402abc4b2a76b9719d911017c592'
PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password
在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python文件與目錄操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python執(zhí)行系統(tǒng)命令的五種方式小結(jié)
在日常開發(fā)中,有時(shí)需要在Python腳本中執(zhí)行系統(tǒng)命令,Python有五種方式來執(zhí)行系統(tǒng)命令(推薦使用第五種),本文為大家整理了這五種方法的具體使用,希望對(duì)大家有所幫助2024-01-01
教你利用python的matplotlib(pyplot)繪制折線圖和柱狀圖
Python繪圖需要下載安裝matplotlib模塊,它是一個(gè)數(shù)學(xué)繪圖庫,我們將使用它來制作簡(jiǎn)單的圖表,如折線圖和散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于利用python的matplotlib(pyplot)繪制折線圖和柱狀圖的相關(guān)資料,需要的朋友可以參考下2022-05-05
關(guān)于Python Error標(biāo)準(zhǔn)異常的總結(jié)
這篇文章主要介紹了關(guān)于Python Error標(biāo)準(zhǔn)異常的總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
使用Python解析JSON數(shù)據(jù)的基本方法
這篇文章主要介紹了使用Python解析JSON數(shù)據(jù)的基本方法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10
使用Python實(shí)現(xiàn)分組數(shù)據(jù)并保存到單獨(dú)的文件中
當(dāng)處理大型數(shù)據(jù)集時(shí),通常需要將數(shù)據(jù)分組,并將每個(gè)分組的數(shù)據(jù)保存到單獨(dú)的文件中,本文將使用 Python 中的 pandas 庫來實(shí)現(xiàn)這一目標(biāo),需要的可以參考下2024-04-04
解決python繪圖使用subplots出現(xiàn)標(biāo)題重疊的問題
這篇文章主要介紹了python繪圖使用subplots出現(xiàn)標(biāo)題重疊的問題及解決方法,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn)
這篇文章主要介紹了Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
關(guān)于adfuller函數(shù)返回值的參數(shù)說明與記錄
這篇文章主要介紹了關(guān)于adfuller函數(shù)返回值的參數(shù)說明與記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

