本文實例講述了python3 常見解密加密算法。分享給大家供大家參考,具體如下:
一.使用base64
Base64編碼,64指A-Z、a-z、0-9、+和/這64個字符,還有“=”號不屬于編碼字符,而是填充字符。
優(yōu)點:方法簡單
缺點:不保險,別人拿到密文可以自己解密出明文
編碼原理:將3個字節(jié)轉(zhuǎn)換成4個字節(jié)((3 X 8)=24=(4X6)),先讀入3個字節(jié),每讀一個字節(jié),左移8位,再右移四次,每次6位,這樣就有4個字節(jié)了。
解碼原理:將4個字節(jié)轉(zhuǎn)換成3個字節(jié),先讀入4個6位(用或運算),每次左移6位,再右移3次,每次8位,這樣就還原了。
Python3中base64模塊與Python2使用方法有了明顯的不一樣,接下來簡要介紹下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_strb'hello'
我們試著用Base64方式加密:
>>> word=base64.b64encode(utf_str)>>> wordb'aGVsbG8='
最后用Base64方式解密:
>>> hello=base64.b64decode(word.decode())>>> hellob'hello'>>> hello.decode()'hello'
可以看到,已經(jīng)成功解密出來!
二.使用pycrypto
Python有個專門的加密解密工具包pycropto,這個包里面實現(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īng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
新聞熱點
疑難解答