最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python AES加密實例解析

 更新時間:2018年01月18日 13:55:39   作者:kwsy2008  
這篇文章主要介紹了Python AES加密實例解析,具有一定借鑒價值,需要的朋友可以參考下

本文主要是對aes加密技術(shù)做一個簡要分析,然后使用Python實現(xiàn),具體介紹如下。

AES,是美國聯(lián)邦政府采用的一種加密技術(shù),AES有幾個模式,其中CBC模式是公認的安全性最好的模式,被TLS所采用。

加密與解密雙方需確定好key,key的長度可以是16位,24位,32位中的一個,分別對應(yīng)了不同的算法。

如果key的長度是是16位的,那么被加密的明文長度必須是16的整數(shù)倍,但實際使用中,這么巧的事情很難發(fā)生,因此就需要對明文進行填充,最常用的方式就是填充\0,等到解密的時候,再把解密出來的明文右側(cè)的\0全部去掉。你也許會關(guān)心,如果我明文最右側(cè)原本就是一堆的\0,那么這么搞,豈不是要出問題么,是滴,確實會出問題,但這樣的明文用來做什么呢?你想多了,這樣的明文你這輩子恐怕都不會遇到。

下面看一段python示例代碼,演示如何使用AES加密技術(shù)進行加密和解密

#coding=utf-8 
''''' 
加密的一方和解密的一方必須提前確定好key值 
''' 
from Crypto.Cipher import AES 
from binascii import b2a_hex, a2b_hex 
 
class MyCrypto(): 
  def __init__(self, key): 
    self.key_len = len(key) 
    if not self.key_len == 16 and not self.key_len == 24 and not self.key_len == 32: 
      raise Exception("length of key is wrong") 
    self.key = key 
    self.mode = AES.MODE_CBC  #這種模式更加安全 
 
  def encrypt(self, text): 
    ''''' 
      被加密的明文長度必須是key長度的整數(shù)倍,如果不夠,則用\0進行填充 
      轉(zhuǎn)成16進制字符串,是因為避免不可見的ascii在顯示的時候搗亂 
    ''' 
    cryptor = AES.new(self.key, self.mode, self.key) 
    count = len(text) 
    add = self.key_len - (count % self.key_len) 
    text = text + ('\0' * add) 
    self.ciphertext = cryptor.encrypt(text) 
    return b2a_hex(self.ciphertext) 
 
 
  def decrypt(self, text): 
    ''''' 
      解密后需注意,加密時有可能填充\0,因此要去掉右側(cè)的\0 
    ''' 
    cryptor = AES.new(self.key, self.mode, self.key) 
    plain_text = cryptor.decrypt(a2b_hex(text)) 
    return plain_text.rstrip('\0') 
 
 
if __name__ == '__main__': 
  mc = MyCrypto("kwsy_zds20160822") 
  e = mc.encrypt("張東升") 
  d = mc.decrypt(e) 
  print e,d 

總結(jié)

以上就是本文關(guān)于Python AES加密實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Python庫學習Tkinter制作GUI個性簽名設(shè)計軟件

    Python庫學習Tkinter制作GUI個性簽名設(shè)計軟件

    Tkinter 是 Python 中的標準 GUI 庫,使用 Tkinter 可以快速地創(chuàng)建 GUI 應(yīng)用程序。今天我們打算再用一個小案例,帶大家加深對Tkinter的理解
    2021-09-09
  • 利用Pandas 創(chuàng)建空的DataFrame方法

    利用Pandas 創(chuàng)建空的DataFrame方法

    下面小編就為大家分享一篇利用Pandas 創(chuàng)建空的DataFrame方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python中的三目(元)運算符詳解

    Python中的三目(元)運算符詳解

    這篇文章主要介紹了python 三元運算符使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-09-09
  • MoviePy簡介及Python視頻剪輯自動化

    MoviePy簡介及Python視頻剪輯自動化

    MoviePy是一個用于視頻編輯的Python模塊,可用于基本操作(如剪切、拼接、字幕插入)、視頻合成、視頻處理或創(chuàng)建高級效果等。本文給大家介紹MoviePy簡介及Python視頻剪輯自動化的相關(guān)知識,感興趣的朋友一起看看吧
    2020-12-12
  • Python比較兩個圖片相似度的方法

    Python比較兩個圖片相似度的方法

    這篇文章主要介紹了Python比較兩個圖片相似度的方法,涉及Python操作pil模塊實現(xiàn)圖片比較的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Python使用scapy模塊發(fā)包收包

    Python使用scapy模塊發(fā)包收包

    這篇文章主要介紹了Python如何使用scapy模塊發(fā)包收包,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-05-05
  • Python爬取個人微信朋友信息操作示例

    Python爬取個人微信朋友信息操作示例

    這篇文章主要介紹了Python爬取個人微信朋友信息操作,涉及Python使用itchat包實現(xiàn)微信朋友信息爬取操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • 分享20個Pandas短小精悍的數(shù)據(jù)操作

    分享20個Pandas短小精悍的數(shù)據(jù)操作

    本文為大家整理了一個pandas數(shù)據(jù)操作的大集合,共20個功能,個個短小精悍,一次讓你愛個夠,感興趣的小伙伴快跟隨小編一起學習一下吧
    2022-04-04
  • 在keras里實現(xiàn)自定義上采樣層

    在keras里實現(xiàn)自定義上采樣層

    這篇文章主要介紹了在keras里實現(xiàn)自定義上采樣層,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python用正則表達式實現(xiàn)爬取古詩文網(wǎng)站信息

    Python用正則表達式實現(xiàn)爬取古詩文網(wǎng)站信息

    這篇文章主要給大家介紹了關(guān)于Python如何利用正則表達式爬取爬取古詩文網(wǎng)站信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12

最新評論

板桥市| 京山县| 宁化县| 桑植县| 宁晋县| 仁寿县| 高陵县| 绥德县| 富阳市| 昆山市| 恩施市| 阿巴嘎旗| 枣强县| 凤城市| 宜春市| 江孜县| 双牌县| 恩平市| 收藏| 工布江达县| 广灵县| 香港| 上栗县| 普格县| 青海省| 巧家县| 通州区| 珲春市| 乃东县| 汉沽区| 保定市| 苍南县| 桑植县| 安阳市| 甘泉县| 祁连县| 巴楚县| 普洱| 岚皋县| 自治县| 都安|