日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python 實(shí)現(xiàn)aes256加密

瀏覽:34日期:2022-07-04 09:58:29

基礎(chǔ)知識(shí)

# 在Linux操作系統(tǒng)下,Python3的默認(rèn)環(huán)境編碼變?yōu)榱藆tf-8編碼,所以在編寫代碼的時(shí)候,字符串大部分都是以u(píng)tf-8處理UTF-8:1byte = 8bit1個(gè)英文字符 = 1byte1個(gè)中文字符 = 3byte

128bit = 16byte = 16個(gè)英文字符192bit = 24byte = 24個(gè)英文字符256bit = 32byte = 32個(gè)英文字符

AES256概念

AES是一種對(duì)稱加密算法,對(duì)稱指加密和解密使用同一個(gè)密鑰; 256指密鑰的長度是256bit,即32個(gè)英文字符的長度;密鑰的長度決定了AES加密的輪數(shù)

AES256加密參數(shù)

密鑰: 一個(gè)32byte的字符串, 常被叫為key 明文: 待加密的字符串;字節(jié)長度(按byte計(jì)算)必須是16的整數(shù)倍,因此,明文加密之前需要被填充 模式: 加密模式,常用的有ECB、CBC;具體含義見參考鏈接 iv 偏移量: CBC模式下需要是16byte字符串; ECB下不需要

參考代碼

# -------------------------------# -*- coding: utf-8 -*-# @Author:jianghan# @Time:2020/11/25 14:46# @File: crypt.py# Python版本:3.6.8# -------------------------------'''1、 填充字符串和明文字符串最后一位不能相同2、 字符串編碼默認(rèn)是utf-8, key和iv默認(rèn)為英文字符;字符串不支持其他編碼或key/iv不支持為中文字符'''from enum import Enum, uniquefrom Crypto.Cipher import AES@uniqueclass Mode(Enum): CBC = AES.MODE_CBC ECB = AES.MODE_ECB@uniqueclass Padding(Enum): ''' 定義填充的字符串 ''' SPACE = ’ ’ # 空格class AES256Crypto: def __init__(self, key, mode=Mode.ECB, padding=Padding.SPACE, iv=None): ''' :param key: 密鑰, 32byte 長度字符串 :param mode: 加密模式, 來源 class Mode :param iv: 16byte 長度字符串 :param padding: 填充的字符串, 來源class Padding ''' self.padding = self.check_padding(padding) self.key = self.padding_key(key) self.iv = self.padding_iv(iv) if iv else None self.mode = self.check_mode(mode) def check_mode(self, mode): ''' 核對(duì) mode ''' if mode not in Mode.__members__.values(): raise Exception(f’mode {mode} not allowed!’) if mode == Mode.CBC and not self.iv: raise Exception(f’iv is required’) return mode def check_padding(self, padding): ''' 核對(duì) padding ''' if padding not in Padding.__members__.values(): raise Exception(f’mode {padding} not allowed!’) return padding def padding_ret_byte(self, text, _len=16): ''' 填充并轉(zhuǎn)成 bytes ''' text = text.encode() remainder = len(text) % _len remainder = _len if remainder == 0 else remainder text += (_len - remainder) * self.padding.value.encode() return text def padding_iv(self, iv: str): ''' 補(bǔ)全iv 并轉(zhuǎn)成 bytes''' if len(iv.encode()) > 16: raise Exception(f’iv {iv} must <= 16bytes’) return self.padding_ret_byte(iv) def padding_key(self, key: str): ''' 補(bǔ)全key 并轉(zhuǎn)成 bytes ''' if len(key.encode()) > 32: raise Exception(f’key {key} must <= 32bytes’) return self.padding_ret_byte(key, _len=32) def encrypt(self, text, encode=None): ''' 加密 :param text: 待加密字符串 :param encode: 傳入base64里面的方法 :return: 若encode=None則不進(jìn)行base加密處理,返回bytes類型數(shù)據(jù) ''' text = self.padding_ret_byte(text) # 注意:加密中的和解密中的AES.new()不能使用同一個(gè)對(duì)象,所以在兩處都使用了AES.new() text = AES.new(key=self.key, mode=self.mode.value, iv=self.iv).encrypt(text) if encode: return encode(text).decode() return text def decrypt(self, text, decode=None): ''' 解密 ''' if decode: if type(text) == str: text = text.encode() text = decode(bytes(text)) else: if type(text) != bytes: raise Exception(text) text = AES.new(key=self.key, mode=self.mode.value, iv=self.iv).decrypt(text) text = text.strip(self.padding.value.encode()) return text.decode()

使用范例

import json# 這是一段待加密的字符串text = ’{'upi': '1341343', 'overdue': '2020-11-26 00:00:00'}’key = ’t6LtKa3tD5X6qaJ6qOrAW3XmobFrY6ob’iv = ’NjtP47eSECuOm3s6’aes = AES256Crypto(key, Mode.CBC, Padding.SPACE, iv)text_1 = aes.encrypt(text) # b’xe7x1dxeaexffxc7xc2xd7x8cxf6xe7x82ux7fx168xbcx90xadx1ex85Mxcbxb0xb4Hox1bxe4xecx9dx1dxf93xebx9bxe7xa3xdd$x8cEaxabxf7K~x91Hxc3]5xc4x1axd4w[x83xb2'FCx9fx9d’text_2 = aes.decrypt(text_1) # ’{'upi': '1341343', 'overdue': '2020-11-26 00:00:00'}’import base64text_3 = aes.encrypt(text, encode=base64.b16encode) # ’E71DEA65FFC7C2D78CF6E782757F1638BC90AD1E854DCBB0B4486F1BE4EC9D1DF933EB9BE7A3DD248C4561ABF74B7E9148C35D35C41AD4775B83B22246439F9D’text_4 = aes.decrypt(text_3, decode=base64.b16decode)# ’{'upi': '1341343', 'overdue': '2020-11-26 00:00:00'}’

以上就是python 實(shí)現(xiàn)aes256加密的詳細(xì)內(nèi)容,更多關(guān)于python aes256加密的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
丝袜亚洲另类欧美| 伊人久久亚洲热| 久久99伊人| 欧美日韩一区二区三区视频播放| 你懂的国产精品| 日韩欧美久久| 亚洲精品九九| 中文在线日韩| 亚洲精品影视| 日本亚洲视频| 美美哒免费高清在线观看视频一区二区| 国产一区日韩一区| 日韩午夜一区| 三级在线观看一区二区| 在线一区免费| 亚洲一区二区三区高清| 免费美女久久99| 亚洲精品系列| 久久国产三级| 精品一区二区三区中文字幕| 免费观看亚洲天堂| 国产a亚洲精品| 久久九九精品| 在线亚洲国产精品网站| 亚洲精品免费观看| 国产伦精品一区二区三区在线播放| 欧美精品观看| 精品国产aⅴ| 久久久精品五月天| 久久国产精品成人免费观看的软件| 欧美日韩激情在线一区二区三区| 日韩国产一二三区| 久久亚洲国产精品尤物| 日韩国产一区二区三区| 国产一在线精品一区在线观看| 亚洲美洲欧洲综合国产一区| 综合国产精品| 久久av网站| 久久久夜精品| 视频一区二区三区入口| 国产区精品区| 波多视频一区| 日韩精品一二三区| 国产亚洲一区二区三区啪| 国产精品成人一区二区网站软件| 日韩av自拍| 久久亚洲视频| 国产精品一区高清| av最新在线| 久久婷婷亚洲| 综合激情在线| 国产在线观看www| 丝袜美腿亚洲色图| 麻豆精品在线播放| av亚洲免费| 国产情侣久久| 欧美日韩高清| 国产精品亚洲人成在99www| 亚洲精品一区三区三区在线观看| 99在线精品视频在线观看| 久久精品xxxxx| 四虎4545www国产精品 | 国产精品一区二区三区av| a国产在线视频| 亚洲精品免费观看| 欧美片第1页| 日韩一区二区三区免费视频 | 中文一区二区| 麻豆成人91精品二区三区| 亚洲精品网址| 久久影院资源站| 蜜臀va亚洲va欧美va天堂| 国产精品theporn| 欧美在线亚洲综合一区| 国产欧美一级| 玖玖精品视频| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 亚洲激情中文| 欧美国产不卡| 狠狠爱成人网| 荡女精品导航| 天堂精品久久久久| 久久三级视频| 老司机精品视频网| 男女男精品网站| 精品国产午夜| 亚洲一区av| 色天使综合视频| 久久精品国产成人一区二区三区| 日本大胆欧美人术艺术动态| 欧美精品资源| 精品国产一区二| 亚洲va久久久噜噜噜久久| 欧美.日韩.国产.一区.二区| 美女精品久久| 欧美亚洲色图校园春色| 日韩视频在线一区二区三区 | 国产一区二区三区国产精品| 亚洲无线观看| 免费不卡中文字幕在线| 韩日一区二区| 91嫩草精品| 中文字幕日韩欧美精品高清在线| 99精品在线观看| 精品久久不卡| 国产精品99精品一区二区三区∴ | 久久精品国内一区二区三区| 亚洲日本在线观看视频| 欧美+日本+国产+在线a∨观看| 日产精品一区二区| 日韩国产精品久久久| 噜噜噜久久亚洲精品国产品小说| 婷婷综合六月| 国产白浆在线免费观看| 国产精品大片免费观看| 亚洲精品裸体| 在线精品国产亚洲| 一区久久精品| 极品日韩av| 久久亚洲成人| 日韩精品看片| 99久久精品网| 色爱av综合网| 日韩不卡免费高清视频| а√天堂8资源在线| 欧美日韩调教| 7777精品| 国产亚洲久久| 欧美亚洲人成在线| 日韩欧美四区| 国产欧美自拍一区| 国产精品22p| 欧美激情 亚洲a∨综合| 国产精品久久久久久av公交车 | 婷婷综合一区| 日韩激情综合| 日韩av网站在线免费观看| 亚洲毛片一区| 一二三区精品| 日韩美女国产精品| 日韩avvvv在线播放| 国产视频网站一区二区三区| 久久精品72免费观看| 欧美极品中文字幕| 国精品产品一区| 亚洲人成在线网站| 99久久久久久中文字幕一区| 在线看片不卡| 在线看片日韩| 欧美在线观看天堂一区二区三区| 国产欧美三级| 精品视频亚洲| 亚洲天堂免费电影| 久久国产亚洲精品| 在线亚洲成人| 日韩精品国产精品| 麻豆精品久久久| 国产成人久久精品麻豆二区| 日韩专区精品| 亚洲一区久久| 日韩成人一级| 精品五月天堂| 日韩黄色大片| 午夜久久黄色| 亚洲日产国产精品| 久久gogo国模啪啪裸体| 日韩国产一区二区| 免费中文字幕日韩欧美| 亚洲精选91| 麻豆精品国产91久久久久久| 日韩欧美一区二区三区免费观看| 亚洲一区国产| 国产精品白丝一区二区三区| 正在播放日韩精品| 美女精品在线观看| 国产精品99久久久久久董美香| 蜜桃精品在线| 亚洲男人在线| 中文字幕成在线观看| 中文在线不卡| 久久av偷拍| 一区二区视频欧美| 麻豆极品一区二区三区| 欧美日韩免费看片| 最新亚洲国产| 精品久久美女| 成人羞羞视频播放网站| 蜜臀av亚洲一区中文字幕| 国产日韩欧美在线播放不卡| 日韩精品中文字幕第1页| 亚洲无线一线二线三线区别av| 免费不卡在线视频| 久久99国产精品视频| 激情亚洲影院在线观看| 亚洲三级在线| 国产日韩欧美一区二区三区 | 亚洲开心激情| 欧美成人a交片免费看| 久久亚洲国产精品一区二区| 精品亚洲自拍|