python3 常見解密加密演算法例項分析【base64、MD5等】
本文例項講述了python3 常見解密加密演算法。分享給大家供大家參考,具體如下:
一.使用base64
Base64編碼,64指A-Z、a-z、0-9、+和/這64個字元,還有“=”號不屬於編碼字元,而是填充字元。
優點:方法簡單
缺點:不保險,別人拿到密文可以自己解密出明文
編碼原理:將3個位元組轉換成4個位元組((3 X 8)=24=(4X6)),先讀入3個位元組,每讀一個位元組,左移8位,再右移四次,每次6位,這樣就有4個位元組了。
解碼原理:將4個位元組轉換成3個位元組,先讀入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.
首先匯入base64模組
>>> import base64 >>> my_str='hello'
然後把字串轉碼為UTF-8格式:
>>> utf_str=my_str.encode(encoding="utf-8") >>> utf_str b'hello'
我們試著用Base64方式加密:
>>> word=base64.b64encode(utf_str) >>> word b'aGVsbG8='
最後用Base64方式解密:
>>> hello=base64.b64decode(word.decode()) >>> hello b'hello' >>> hello.decode() 'hello'
可以看到,已經成功解密出來!
二.使用pycrypto
Python有個專門的加密解密工具包pycropto,這個包裡面實現了MD2,MD4,MD5,RIPEMD,SHA1,SHA256等加密演算法。
>>> from Crypto.Hash import MD5 >>> obj = MD5.new() >>> obj.update(b"hello") >>> obj.hexdigest() >>> obj.hexdigest() '5d41402abc4b2a76b9719d911017c592'
PS:關於加密解密感興趣的朋友還可以參考本站線上工具:
文字線上加密解密工具(包含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
更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python加密解密演算法與技巧總結》、《Python編碼操作技巧總結》、《Python檔案與目錄操作技巧彙總》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》及《Python入門與進階經典教程》
希望本文所述對大家Python程式設計有所幫助。