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

python實(shí)現(xiàn)AES加密與解密

 更新時(shí)間:2019年03月28日 16:11:47   作者:niuu  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)AES加密與解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

AES加密方式有五種:ECB, CBC, CTR, CFB, OFB

從安全性角度推薦CBC加密方法,本文介紹了CBC,ECB兩種加密方法的python實(shí)現(xiàn)

python 在 Windows下使用AES時(shí)要安裝的是pycryptodome 模塊  

pip install pycryptodome

python 在 Linux下使用AES時(shí)要安裝的是pycrypto模塊  

pip install pycrypto

CBC加密需要一個(gè)十六位的key(密鑰)和一個(gè)十六位iv(偏移量)

ECB加密不需要iv

AES CBC 加密的python實(shí)現(xiàn)

from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex


# 如果text不足16位的倍數(shù)就用空格補(bǔ)足為16位
def add_to_16(text):
 if len(text.encode('utf-8')) % 16:
 add = 16 - (len(text.encode('utf-8')) % 16)
 else:
 add = 0
 text = text + ('\0' * add)
 return text.encode('utf-8')


# 加密函數(shù)
def encrypt(text):
 key = '9999999999999999'.encode('utf-8')
 mode = AES.MODE_CBC
 iv = b'qqqqqqqqqqqqqqqq'
 text = add_to_16(text)
 cryptos = AES.new(key, mode, iv)
 cipher_text = cryptos.encrypt(text)
 # 因?yàn)锳ES加密后的字符串不一定是ascii字符集的,輸出保存可能存在問題,所以這里轉(zhuǎn)為16進(jìn)制字符串
 return b2a_hex(cipher_text)


# 解密后,去掉補(bǔ)足的空格用strip() 去掉
def decrypt(text):
 key = '9999999999999999'.encode('utf-8')
 iv = b'qqqqqqqqqqqqqqqq'
 mode = AES.MODE_CBC
 cryptos = AES.new(key, mode, iv)
 plain_text = cryptos.decrypt(a2b_hex(text))
 return bytes.decode(plain_text).rstrip('\0')


if __name__ == '__main__':
 e = encrypt("hello world") # 加密
 d = decrypt(e) # 解密
 print("加密:", e)
 print("解密:", d)

AES ECB加密的python實(shí)現(xiàn)

"""
ECB沒有偏移量
"""
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex


def add_to_16(text):
 if len(text.encode('utf-8')) % 16:
 add = 16 - (len(text.encode('utf-8')) % 16)
 else:
 add = 0
 text = text + ('\0' * add)
 return text.encode('utf-8')


# 加密函數(shù)
def encrypt(text):
 key = '9999999999999999'.encode('utf-8')
 mode = AES.MODE_ECB
 text = add_to_16(text)
 cryptos = AES.new(key, mode)

 cipher_text = cryptos.encrypt(text)
 return b2a_hex(cipher_text)


# 解密后,去掉補(bǔ)足的空格用strip() 去掉
def decrypt(text):
 key = '9999999999999999'.encode('utf-8')
 mode = AES.MODE_ECB
 cryptor = AES.new(key, mode)
 plain_text = cryptor.decrypt(a2b_hex(text))
 return bytes.decode(plain_text).rstrip('\0')


if __name__ == '__main__':
 e = encrypt("hello world") # 加密
 d = decrypt(e) # 解密
 print("加密:", e)
 print("解密:", d)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Python3 struct報(bào)錯(cuò)argument for 's' must be a bytes object

    解決Python3 struct報(bào)錯(cuò)argument for 's'&

    這篇文章主要為大家介紹了解決Python3 struct報(bào)錯(cuò)argument for 's' must be a bytes object方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 利用Python進(jìn)行音頻信號(hào)處理和音樂生成的代碼示例

    利用Python進(jìn)行音頻信號(hào)處理和音樂生成的代碼示例

    隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,音頻信號(hào)處理和音樂生成逐漸成為了Python程序員們的關(guān)注點(diǎn),本文將介紹如何利用Python進(jìn)行音頻信號(hào)處理和音樂生成,包括基本概念、常用庫(kù)的使用以及實(shí)際的代碼示例,需要的朋友可以參考下
    2024-06-06
  • python中yaml配置文件模塊的使用詳解

    python中yaml配置文件模塊的使用詳解

    本篇文章主要介紹了python中yaml配置文件模塊的使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • Python3.9又更新了:dict內(nèi)置新功能

    Python3.9又更新了:dict內(nèi)置新功能

    這篇文章主要介紹了Python3.9又更新了:dict內(nèi)置新功能,從文檔中,我們可以看到官方透露的對(duì) dict、math 等組件增加的新特性,以及下一步的開發(fā)進(jìn)展
    2020-02-02
  • Python虛擬環(huán)境virtualenv的安裝與使用詳解

    Python虛擬環(huán)境virtualenv的安裝與使用詳解

    virtualenv可以用來管理互不干擾的獨(dú)立python虛擬環(huán)境,在有些場(chǎng)景下非常有用,下面這篇文章主要給大家介紹了Python虛擬環(huán)境virtualenv安裝與使用的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • python3實(shí)現(xiàn)二叉樹的遍歷與遞歸算法解析(小結(jié))

    python3實(shí)現(xiàn)二叉樹的遍歷與遞歸算法解析(小結(jié))

    這篇文章主要介紹了python3實(shí)現(xiàn)二叉樹的遍歷與遞歸算法解析(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 如何運(yùn)用sklearn做邏輯回歸預(yù)測(cè)

    如何運(yùn)用sklearn做邏輯回歸預(yù)測(cè)

    這篇文章主要介紹了如何運(yùn)用sklearn做邏輯回歸預(yù)測(cè)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • pygame實(shí)現(xiàn)俄羅斯方塊游戲(基礎(chǔ)篇2)

    pygame實(shí)現(xiàn)俄羅斯方塊游戲(基礎(chǔ)篇2)

    這篇文章主要為大家介紹了pygame實(shí)現(xiàn)俄羅斯方塊游戲基礎(chǔ)的第2篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • python實(shí)現(xiàn)簡(jiǎn)易數(shù)碼時(shí)鐘

    python實(shí)現(xiàn)簡(jiǎn)易數(shù)碼時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)易數(shù)碼時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程

    Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程

    這篇文章主要為大家介紹了Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評(píng)論

无极县| 门源| 和田县| 茂名市| 五大连池市| 沙河市| 定南县| 白城市| 灵石县| 留坝县| 陇西县| 洛扎县| 洪雅县| 南靖县| 丰镇市| 乌拉特后旗| 泗水县| 城口县| 静乐县| 南城县| 临潭县| 洪洞县| 安龙县| 塔河县| 河北区| 阜城县| 闽侯县| 邵东县| 柘城县| 肇庆市| 安泽县| 南郑县| 上饶市| 张家川| 泰宁县| 祥云县| 康定县| 玉环县| 土默特左旗| 汶上县| 蕉岭县|