91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python encrypt 實現AES加密的實例詳解

發布時間:2020-10-22 23:20:06 來源:腳本之家 閱讀:268 作者:眼鏡兒 欄目:開發技術

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

從安全性角度推薦cbc算法

windows 下安裝 : pip install pycryptodome

linux 下安裝 : pip install pycrypto

cbc加密需要一個十六位的key 和一個十六位的iv(偏移量)

ecb加密不需要iv

aes cbc 加密的python實現

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

# 如果text不足十六位的倍數用空格補充
def add_to_16(text):
  if len(text.encode('utf8')) % 16:
    add = 16 - (len(text.encode('utf8')) % 16)
  else:
    add = 0
  text = text + '\0' * add
  return text

# 加密
def encrypt(text):
  key = '9999999999999999'.encode('utf8')
  mode = AES.MODE_CBC
  iv = b'qqqqqqqqqqqqqqqq'
  text = add_to_16(text)
  cryptos = AES.new(key, mode, iv)
  cipher_text = cryptos.encrypt(text)
  # 因為AES加密后的字符串不一定是ascii字符集的,輸出保存可能存在問題,所以這里轉為16進制字符串
  return b2a_hex(cipher_text)

# 解密后去掉空格
def decrypt(text):
  key = '9999999999999999'.encode('utf8')
  mode = AES.MODE_CBC
  iv = b'qqqqqqqqqqqqqqqq'
  cryptos = AES.new(key, mode, iv)
  plain_text = cryptos.decrypt(a2b_hex(text))
  return bytes.decode(plain_text).rstrip('\0')

if __name__ == '__main__':
  a = encrypt('hello')
  b = decrypt(a)
  print('加密', a)
  print('解密', b)

aes ecb加密, 沒有偏移量iv

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

# 如果text不足十六位的倍數用空格補充
def add_to_16(text):
  if len(text.encode('utf8')) % 16:
    add = 16 - (len(text.encode('utf8')) % 16)
  else:
    add = 0
  text = text + '\0' * add
  return text

# 加密
def encrypt(text):
  key = '9999999999999999'.encode('utf8')
  mode = AES.MODE_ECB
  text = add_to_16(text)
  cryptos = AES.new(key, mode)
  cipher_text = cryptos.encrypt(text)
  # 因為AES加密后的字符串不一定是ascii字符集的,輸出保存可能存在問題,所以這里轉為16進制字符串
  return b2a_hex(cipher_text)

# 解密后去掉空格
def decrypt(text):
  key = '9999999999999999'.encode('utf8')
  mode = AES.MODE_ECB
  cryptos = AES.new(key, mode)
  plain_text = cryptos.decrypt(a2b_hex(text))
  return bytes.decode(plain_text).rstrip('\0')

if __name__ == '__main__':
  a = encrypt('hello')
  b = decrypt(a)
  print('加密', a)
  print('解密', b)

到此這篇關于python encrypt 實現AES加密的實例詳解的文章就介紹到這了,更多相關python encrypt 實現AES加密內容請搜素億速云以前的文章或下面相關文章,希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

布尔津县| 饶河县| 南江县| 应用必备| 武清区| 白沙| 九寨沟县| 隆子县| 炎陵县| 五指山市| 合水县| 巴南区| 大石桥市| 称多县| 博兴县| 黑龙江省| 烟台市| 叙永县| 竹北市| 柳江县| 望谟县| 中西区| 甘肃省| 叶城县| 无极县| 屯门区| 江孜县| 佛冈县| 苍山县| 乌拉特中旗| 宁蒗| 和政县| 保康县| 牡丹江市| 股票| 邛崃市| 桐城市| 绥德县| 江西省| 酒泉市| 巴里|