Python3 - AES 加密解密

轉(zhuǎn)載代碼
轉(zhuǎn)自:https://codeghar.wordpress.com/2013/09/06/beginning-aes-with-python3/

#!/usr/bin/env python3
from Crypto.Cipher import AES
from Crypto import Random
from base64 import b64encode, b64decode
from Crypto.Util import Counter
from binascii import hexlify

print('```GENERAL```')
print('AES block size: {0}'.format(AES.block_size))
original_key = 'This is my k\u00eay!! The extra stuff will be truncated before using it.'
key = original_key.encode('utf-8')[0:32]
print('Original Key: {0}'.format(original_key))
print('Usable Key: {0}'.format(key))
print('Base64 Encoded key: {0}'.format(b64encode(key).decode('utf-8')))
message = '0123456789'.encode('utf-8')
print('Original Message: {0}'.format(message))


# MODE CFB
print('```MODE CFB```')
cfb_iv = Random.new().read(AES.block_size)
print('Base64 Encoded IV: {0}'.format(b64encode(cfb_iv).decode('utf-8')))



cfb_cipher_encrypt = AES.new(key, AES.MODE_CFB, cfb_iv)
cfb_msg_encrypt = b64encode(cfb_cipher_encrypt.encrypt(message))
print ('Mode CFB, Base64 Encoded, Encrypted message: {0}'.format( cfb_msg_encrypt.decode('utf-8')))



cfb_cipher_decrypt = AES.new(key, AES.MODE_CFB, cfb_iv)
cfb_msg_decrypt = cfb_cipher_decrypt.decrypt(b64decode(cfb_msg_encrypt)).decode('utf-8')
print('Mode CFB, Decrypted message: {0}'.format(cfb_msg_decrypt))


# MODE CTR
print('```MODE CTR```')
def ctr_pad_message(in_message):
    # http://stackoverflow.com/questions/14179784/python-encrypting-with-pycrypto-aes
    # We use PKCS7 padding
    length = 16 - (len(in_message) % 16)
    return (in_message + bytes([length])*length)
def ctr_unpad_message(in_message):
    return in_message[:-in_message[-1]]


ctr_iv = int(hexlify(Random.new().read(AES.block_size)), 16)
print('CTR IV (int): {0}'.format(ctr_iv))
ctr_encrypt_counter = Counter.new(128, initial_value=ctr_iv)
ctr_decrypt_counter = Counter.new(128, initial_value=ctr_iv)



ctr_padded_message = ctr_pad_message(message)
print('Mode CTR, Padded message: {0}'.format(ctr_padded_message))
ctr_cipher_encrypt = AES.new(key, AES.MODE_CTR, counter=ctr_encrypt_counter)
ctr_msg_encrypt = b64encode(ctr_cipher_encrypt.encrypt(ctr_padded_message))
print('Mode CTR, Base64 Encoded, Encrypted message: {0}'.format( ctr_msg_encrypt.decode('utf-8')))



ctr_cipher_decrypt = AES.new(key, AES.MODE_CTR, counter=ctr_decrypt_counter)
ctr_msg_decrypt = ctr_cipher_decrypt.decrypt(b64decode(ctr_msg_encrypt))
ctr_unpadded_message = ctr_unpad_message(ctr_msg_decrypt)
print('Mode CTR, Decrypted message: {0}'.format(ctr_msg_decrypt))
print('Mode CTR, Unpadded, Decrypted message: {0}'.format(ctr_unpadded_message))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缺厉,隨后出現(xiàn)的幾起案子永高,更是在濱河造成了極大的恐慌,老刑警劉巖提针,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件命爬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辐脖,警方通過查閱死者的電腦和手機(jī)饲宛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗜价,“玉大人艇抠,你說我怎么就攤上這事【米叮” “怎么了家淤?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)奴拦。 經(jīng)常有香客問我媒鼓,道長(zhǎng),這世上最難降的妖魔是什么错妖? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任绿鸣,我火速辦了婚禮,結(jié)果婚禮上暂氯,老公的妹妹穿的比我還像新娘潮模。我一直安慰自己,他們只是感情好痴施,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布擎厢。 她就那樣靜靜地躺著究流,像睡著了一般。 火紅的嫁衣襯著肌膚如雪动遭。 梳的紋絲不亂的頭發(fā)上芬探,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音厘惦,去河邊找鬼偷仿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛宵蕉,可吹牛的內(nèi)容都是我干的酝静。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼羡玛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼别智!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起稼稿,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤薄榛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后渺杉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛇数,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年是越,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碌上。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡倚评,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出馏予,到底是詐尸還是另有隱情天梧,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布霞丧,位于F島的核電站呢岗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蛹尝。R本人自食惡果不足惜后豫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望突那。 院中可真熱鬧挫酿,春花似錦、人聲如沸愕难。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至葱弟,卻和暖如春壹店,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芝加。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工硅卢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妖混。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓老赤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親制市。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抬旺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,756評(píng)論 25 707
  • 10點(diǎn)半睡,6點(diǎn)半起祥楣,2+6.5=8.5小時(shí)有核心技術(shù)的人开财,才能活到最后。 iOS 閱讀整理在sourcetree...
    士夢(mèng)閱讀 3,031評(píng)論 0 18
  • 親愛的误褪,我不要自己率先倒下责鳍,所以,要經(jīng)營(yíng)好自己的身體兽间,去鍛煉历葛!去健身!加油嘀略,寶貝恤溶,你很棒!什么事情早做一些帜羊,讓...
    韓小妮的二三事閱讀 159評(píng)論 0 0
  • 周老師讼育,我想對(duì)您說帐姻。 夜已漸深,千萬(wàn)扇的窗戶奶段,只有您那扇窗還亮著燈光饥瓷,一個(gè)疲倦的身影還在專心備課。周老師忧饭,我想對(duì)您...
    王文卿閱讀 207評(píng)論 0 0
  • 10.6 姓名:韓艾辰 第38天 【學(xué)習(xí):30分鐘】 【冥想:28分鐘】每天多次冥想 【瑜伽:0分鐘】 【三時(shí)書...
    韓艾辰閱讀 211評(píng)論 0 0