黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

在Python中使用M2Crypto模塊實現(xiàn)AES加密的教程

系統(tǒng) 1942 0

?AES(英文:Advanced Encryption Standard,中文:高級加密標準),是一種區(qū)塊加密標準。AES將原始數(shù)據(jù)分成多個4×4字節(jié)矩陣來處理,通過預先定義的密鑰對每個字節(jié)矩陣中的每個字節(jié)進行異或、替換、移位以及線性變換操作來達到加密的目的。密鑰長度可以是128,192或256比特。
??? 下面是一個利用Python M2Crypto庫,并使用aes_128_ecb算法進行加密和解密的例子。首先介紹一下幾個關鍵的點:
1、iv(Initialization vector),即初始化向量,用于避免相同的數(shù)據(jù)多次加密都產(chǎn)生相同的密文。最大長度為16字節(jié),超出16字節(jié)部分會被忽略,最好是隨機產(chǎn)生以增加加密的強度。
2、ECB (Electronic codebook,ECB),它會對每個4×4字節(jié)矩陣都用同一個密鑰進行加密,而且?]有使用 IV。優(yōu)點是每個字節(jié)矩陣都可以獨立進行加密,因此可以同時對每個字節(jié)矩陣進行加密;缺點是對于相關的數(shù)據(jù),加密之后的密文都是一樣的。
3、Padding,由于AES是以4×4字節(jié)矩陣作為單位進行處理,因為待加密數(shù)據(jù)必須是16的倍數(shù),若不足16的倍數(shù),將會進行填充操作。aes_128_ecb算法加密默認填充模式是pkcs5。
?

            
from M2Crypto.EVP import Cipher 
from M2Crypto import m2 
from M2Crypto import util 
  
ENCRYPT_OP = 1 # 加密操作 
DECRYPT_OP = 0 # 解密操作 
  
iv = '\0' * 16 # 初始化變量,對于aes_128_ecb算法無用 
PRIVATE_KEY = 'dd7fd4a156d28bade96f816db1d18609' # 密鑰 
  
def Encrypt(data): 
 '使用aes_128_ecb算法對數(shù)據(jù)加密' 
 cipher = Cipher(alg = 'aes_128_ecb', key = PRIVATE_KEY, iv = iv, op = ENCRYPT_OP) 
 buf = cipher.update(data) 
 buf = buf + cipher.final() 
 del cipher 
 # 將明文從字節(jié)流轉為16進制 
 output = '' 
 for i in buf: 
  output += '%02X' % (ord(i)) 
 return output 
  
def Decrypt(data): 
 '使用aes_128_ecb算法對數(shù)據(jù)解密' 
 # 將密文從16進制轉為字節(jié)流 
 data = util.h2b(data) 
 cipher = Cipher(alg = 'aes_128_ecb', key = PRIVATE_KEY, iv = iv, op = DECRYPT_OP) 
 buf = cipher.update(data) 
 buf = buf + cipher.final() 
 del cipher 
 return buf

          


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論