Python使用PyCrypto實(shí)現(xiàn)AES加密功能示例
本文實(shí)例講述了Python使用PyCrypto實(shí)現(xiàn)AES加密功能。分享給大家供大家參考,具體如下:
#!/usr/bin/env python
from Crypto.Cipher import AES
import base64
import os
# the block size for the cipher object; must be 16, 24, or 32 for AES
BLOCK_SIZE = 32
# the character used for padding--with a block cipher such as AES, the value
# you encrypt must be a multiple of BLOCK_SIZE in length. This character is
# used to ensure that your value is always a multiple of BLOCK_SIZE
PADDING = '{'
# one-liner to sufficiently pad the text to be encrypted
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
# one-liners to encrypt/encode and decrypt/decode a string
# encrypt with AES, encode with base64
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
# generate a random secret key
secret = os.urandom(BLOCK_SIZE)
# create a cipher object using the random secret
cipher = AES.new(secret)
# encode a string
encoded = EncodeAES(cipher, 'password')
print 'Encrypted string:', encoded
# decode the encoded string
decoded = DecodeAES(cipher, encoded)
print 'Decrypted string:', decoded
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數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
django模板結(jié)構(gòu)優(yōu)化的方法
這篇文章主要介紹了django模板結(jié)構(gòu)優(yōu)化的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Python EOL while scanning string literal問(wèn)題解決方法
這篇文章主要介紹了Python EOL while scanning string literal問(wèn)題解決方法,本文總結(jié)出是數(shù)據(jù)庫(kù)數(shù)據(jù)出現(xiàn)問(wèn)題導(dǎo)致這個(gè)問(wèn)題,需要的朋友可以參考下2015-04-04
用python標(biāo)準(zhǔn)庫(kù)difflib比較兩份文件的異同詳解
今天小編就為大家分享一篇用python標(biāo)準(zhǔn)庫(kù)difflib比較兩份文件的異同詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
如何用Python做一個(gè)微信機(jī)器人自動(dòng)拉群
這篇文章主要介紹了如何用Python做一個(gè)微信機(jī)器人自動(dòng)拉群,微當(dāng)群人數(shù)達(dá)到100人后,用戶無(wú)法再通過(guò)掃描群二維碼加入,只能讓用戶先添加群內(nèi)聯(lián)系人微信,再由聯(lián)系人把用戶拉進(jìn)來(lái)。這樣,聯(lián)系人員的私人微信會(huì)添加大量陌生人,給其帶來(lái)不必要的打擾,需要的朋友可以參考下2019-07-07
python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的詳細(xì)使用方法及各控件的屬性與方法
這篇文章主要介紹了python圖形開(kāi)發(fā)GUI庫(kù)pyqt5的詳細(xì)使用方法及各控件的屬性與方法,需要的朋友可以參考下2020-02-02
python中關(guān)于eval函數(shù)的使用及說(shuō)明
這篇文章主要介紹了python中關(guān)于eval函數(shù)的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
python學(xué)生信息管理系統(tǒng)(初級(jí)版)
這篇文章主要為大家詳細(xì)介紹了python學(xué)生信息管理系統(tǒng)的初級(jí)版本代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
Django中常用的查詢數(shù)據(jù)方法及查詢對(duì)象的條件詳解
在web 開(kāi)發(fā)過(guò)程中,Django 與后臺(tái)數(shù)據(jù)庫(kù)的交互是必不可少的一項(xiàng),也是實(shí)現(xiàn)業(yè)務(wù)邏輯所需數(shù)據(jù)的重要方式,這篇文章主要給大家介紹了關(guān)于Django中常用的查詢數(shù)據(jù)方法及查詢對(duì)象條件的相關(guān)資料,需要的朋友可以參考下2021-09-09
scrapy自定義pipeline類實(shí)現(xiàn)將采集數(shù)據(jù)保存到mongodb的方法
這篇文章主要介紹了scrapy自定義pipeline類實(shí)現(xiàn)將采集數(shù)據(jù)保存到mongodb的方法,涉及scrapy采集及操作mongodb數(shù)據(jù)庫(kù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04

