国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python AES加密實(shí)例解析

2020-01-04 16:09:29
字體:
供稿:網(wǎng)友

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

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

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

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

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

#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進(jìn)行填充       轉(zhuǎn)成16進(jìn)制字符串,是因?yàn)楸苊獠豢梢姷腶scii在顯示的時(shí)候搗亂     '''     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):     '''''       解密后需注意,加密時(shí)有可能填充/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加密實(shí)例解析的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长沙县| 南华县| 雅安市| 长乐市| 哈密市| 宣威市| 乡宁县| 辽阳县| 天祝| 中山市| 通渭县| 岳阳市| 兴安盟| 策勒县| 武宁县| 汽车| 泉州市| 尼木县| 本溪| 中卫市| 调兵山市| 邵武市| 桃江县| 漳平市| 濮阳市| 兖州市| 四平市| 石河子市| 咸阳市| 全州县| 汽车| 讷河市| 璧山县| 库伦旗| 肇庆市| 紫云| 明星| 宜城市| 穆棱市| 乌拉特前旗| 马关县|