日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

用python实现AES加密解密

發(fā)布時(shí)間:2025/3/15 python 8 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python实现AES加密解密 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 背景
    • 測試數(shù)據(jù)
    • 代碼
    • 遺留問題
    • 補(bǔ)充(2021.10.6)

背景

以藍(lán)牙官方協(xié)議(V5.0)中的 sample data 為例子,看看怎么用 python 實(shí)現(xiàn) AES 加密和解密。

測試數(shù)據(jù)


我們看看怎么由 SK 和 B0 得到 X1,然后從 X1 得到 B0

代碼

from Crypto.Cipher import AES # install pycryptodome import binasciiSK = binascii.unhexlify('99AD1B5226A37E3E058E3B8E27C2C666') # MSB - LSB B0 = binascii.unhexlify('49000000008024ABDCBABEBAAFDE0001') # LSB - MSB# 加密 plaintext = B0 rijn = AES.new(SK, AES.MODE_ECB) ciphertext = rijn.encrypt(plaintext) result = binascii.hexlify(ciphertext).decode('utf-8') print(result)# 解密 plaintext = rijn.decrypt(ciphertext) result = binascii.hexlify(plaintext).decode('utf-8') print(result)

運(yùn)行結(jié)果:

712eaaaae60603521d245e50786eefe4 49000000008024abdcbabebaafde0001

說明:

  • 為了使用 AES 模塊,需要安裝 pycryptodome

  • binascii.unhexlify(hexstr) :返回由十六進(jìn)制字符串 hexstr 表示的二進(jìn)制數(shù)據(jù)。 hexstr 必須包含偶數(shù)個(gè)十六進(jìn)制數(shù)字(可以是大寫或小寫),否則會(huì)引發(fā) Error異常。

  • binascii.hexlify(data): 返回二進(jìn)制數(shù)據(jù) data 的十六進(jìn)制表示形式。 data 的每個(gè)字節(jié)都被轉(zhuǎn)換為相應(yīng)的 2 位十六進(jìn)制表示形式。因此返回的字節(jié)對(duì)象的長度是 data 的兩倍。

  • 遺留問題

    我對(duì)字節(jié)序這塊比較困惑,網(wǎng)上說 AES 是按照字節(jié)來加密的,可以認(rèn)為明文是一個(gè)字節(jié)一個(gè)字節(jié)送進(jìn)加密引擎,所以應(yīng)該是低字節(jié)在前面;那 KEY 應(yīng)該是什么順序呢?是大端嗎?

    我嘗試用 http://www.efgh.com/software/rijndael.htm 的代碼實(shí)現(xiàn),發(fā)現(xiàn)在下面的函數(shù)中:

    int rijndaelSetupEncrypt(uint32_t *rk, const uint8_t *key, int keybits)

    第二個(gè)參數(shù) key,應(yīng)該是從 MSB 到 LSB,也就是說 key[0] = 0x99,key[1] = 0xAD;…

    補(bǔ)充(2021.10.6)

    考慮到大小端的問題,有時(shí)候需要對(duì)字符串做端的轉(zhuǎn)換,添加一個(gè)小函數(shù)。

    def reverse(key):out = ''for i in range(30, -1, -2):out = out + key[i:i+2]return out

    解釋一下,假定 key 字符串的長度是 32 個(gè)字符
    循環(huán)中 i 的取值是 30,28,26,…,0
    這樣就可以構(gòu)成切片 key[30:32] , key[28:30] , key[26:28] , … , key[0:2],把它們拼在一起就可以得到結(jié)果。

    【End】

    總結(jié)

    以上是生活随笔為你收集整理的用python实现AES加密解密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 精品人妻一区二区三区四区在线 | 男人添女人荫蒂国产 | 视频一区国产精品 | 在线观看中文字幕2021 | 一区三区在线 | sm久久捆绑调教精品一区 | 麻豆av片 | 色欧美片视频在线观看 | 中文字幕三区 | 亚洲欧美一区二区精品久久久 | 亚洲一区中文字幕永久在线 | 成年性生交大片免费看 | 国产麻豆免费观看 | 精品动漫一区二区三区在线观看 | 久久久国产免费 | 午夜视频免费 | 国产美女毛片 | aa黄色大片 | 伊人色播 | 爱情岛论坛自拍亚洲品质极速最新章 | 日韩六十路 | 免费jizz| 日韩一区二区三区在线播放 | 音影先锋av资源 | 97超碰碰碰 | 日本精品人妻无码免费大全 | 亚洲爽妇网 | 中文字幕久久av | 国产chinese| 日韩中文在线观看 | 黄色av一区二区 | 精品妇女一区二区三区 | 欧美色就是色 | 欧美天天爽 | 国产一区二区三区毛片 | www.四虎com| 人人干av | 精品国产一区二区三区四区精华 | 美女下部无遮挡 | 粗大挺进潘金莲身体在线播放 | 亚洲欧美色图片 | 真实偷拍激情啪啪对白 | 五月天婷婷伊人 | 黄色片怎么看 | 91综合在线| 少女国产免费观看 | 2020av视频| 精品三级av | 国产美女一区二区 | 亚洲天堂日韩在线 | 国产极品久久久 | aaa在线播放 | 亚洲成av人影院 | 日本高清在线播放 | 温柔少妇的高潮呻吟 | 国产一区二区三区在线观看免费 | 亚洲欧美中日韩 | 亚洲视频一区在线观看 | 超碰caoporen | videos亚洲| 国产成人精品综合在线观看 | 国产黄色视 | 无码人妻丰满熟妇区毛片蜜桃精品 | 性欧美精品中出 | 在线观看免费福利 | 日韩欧美一区二区三区 | 国产又粗又黄又爽视频 | 狠狠躁 | 男ji大巴进入女人视频 | 亚洲图片偷拍区 | 国产精品久久国产精麻豆96堂 | 丁香八月婷婷 | 国产性xxx| 欧美在线性 | 亚州av成人 | 欧美中文一区 | 国产肥熟 | 亚洲熟妇无码爱v在线观看 九色福利 | 午夜精品久久久久久久久久久久久 | 日韩一区二区三区中文字幕 | 国产福利午夜 | 香蕉私人影院 | 窝窝午夜视频 | 国产一区一一区高清不卡 | 亚洲精品一区二区三区不卡 | 性――交――性――乱a | 一二三av | 中文字幕在线2018 | 天天艹夜夜艹 | 看片久久 | 日日夜夜网 | 黄色三级大片 | 长篇高h肉爽文丝袜 | 国产精品成人av久久 | 天天射日日射 | 狠狠干av | 亚洲午夜精品一区二区 | 欧美日韩成人免费 | 国内av自拍|