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

您的位置:首頁技術文章
文章詳情頁

python 實現aes256加密

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

基礎知識

# 在Linux操作系統下,Python3的默認環境編碼變為了utf-8編碼,所以在編寫代碼的時候,字符串大部分都是以utf-8處理UTF-8:1byte = 8bit1個英文字符 = 1byte1個中文字符 = 3byte

128bit = 16byte = 16個英文字符192bit = 24byte = 24個英文字符256bit = 32byte = 32個英文字符

AES256概念

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

AES256加密參數

密鑰: 一個32byte的字符串, 常被叫為key 明文: 待加密的字符串;字節長度(按byte計算)必須是16的整數倍,因此,明文加密之前需要被填充 模式: 加密模式,常用的有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、 字符串編碼默認是utf-8, key和iv默認為英文字符;字符串不支持其他編碼或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): ''' 核對 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): ''' 核對 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): ''' 填充并轉成 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): ''' 補全iv 并轉成 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): ''' 補全key 并轉成 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則不進行base加密處理,返回bytes類型數據 ''' text = self.padding_ret_byte(text) # 注意:加密中的和解密中的AES.new()不能使用同一個對象,所以在兩處都使用了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 實現aes256加密的詳細內容,更多關于python aes256加密的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲乱码视频| 999国产精品视频| 国产99在线| 久久99高清| 欧美国产极品| 97精品一区| 99久久亚洲精品| 影音先锋国产精品| 亚洲深夜影院| 影音先锋久久精品| 日本欧美大码aⅴ在线播放| 最新日韩av| 日本亚洲视频| 色偷偷色偷偷色偷偷在线视频| 成人在线视频免费看| 女生影院久久| 麻豆久久精品| 精品久久美女| 红桃视频欧美| 国产精品一区二区三区av| 黄毛片在线观看| 亚洲无线观看| 国精品产品一区| 先锋亚洲精品| 国产精品入口久久| 999国产精品视频| 久久国产精品毛片| 亚洲免费观看高清完整版在线观| 天堂成人免费av电影一区 | 日本强好片久久久久久aaa| 久久99高清| 日本 国产 欧美色综合| 国产乱人伦精品一区| 久久久久国产| 国产乱子精品一区二区在线观看| 亚洲电影有码| 国产欧美日韩视频在线| 亚洲电影在线一区二区三区| 日本va欧美va精品发布| 成人美女视频| 国产亚洲一卡2卡3卡4卡新区| 激情久久婷婷| 精品一区视频| 日韩黄色大片| 免费在线视频一区| 久久中文视频| 精品成人免费一区二区在线播放| 91成人在线| 日韩中文字幕| 一区二区电影在线观看| 少妇久久久久| 亚洲永久av| 热三久草你在线| 美女国产精品久久久| 亚洲一区二区三区四区电影 | 水蜜桃精品av一区二区| 久久免费大视频| 欧美亚洲日本精品| 国产在视频一区二区三区吞精| 国产亚洲精品精品国产亚洲综合 | 视频一区二区中文字幕| 亚洲二区精品| 久久青草久久| 美女网站视频一区| 精品久久一区| 成人午夜网址| 日韩高清不卡| 红桃视频国产精品| 亚洲尤物在线| 亚洲乱码视频| 久久久久久色 | 久久男人av| 精品国产亚洲一区二区三区| 久久不见久久见中文字幕免费 | 黄色av一区| 日韩中文字幕| 欧美一区二区三区久久| 国产日韩免费| 日韩欧美看国产| 伊人久久成人| 国产另类在线| 激情丁香综合| 日本成人在线不卡视频| 日本一二区不卡| 久久亚洲视频| 国产一区二区三区四区五区| 激情六月综合| 欧美日韩精品一区二区三区视频 | 亚州av一区| 精品一区二区三区在线观看视频 | 国产福利91精品一区二区| 亚洲国产综合在线看不卡| 日本亚洲视频| 久久久久久免费视频| 日韩精品亚洲专区| 国产资源在线观看入口av| 久久成人一区| 精品美女久久| 久久精品国产999大香线蕉 | 少妇精品在线| 精品国产乱码久久久久久樱花| 日韩三区在线| 欧美国产极品| 亚洲色图国产| 亚洲午夜黄色| 国内精品麻豆美女在线播放视频| 日本亚洲欧洲无免费码在线| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 不卡av一区二区| 欧美激情福利| 亚洲开心激情| 午夜久久免费观看| 福利一区视频| 国产精品激情电影| 日韩一区二区三区四区五区 | 亚欧洲精品视频在线观看| 亚洲二区免费| bbw在线视频| 你懂的国产精品永久在线| 亚洲aa在线| 亚洲精品乱码| 中文字幕一区二区av| 91精品99| 亚洲调教视频在线观看| 成人在线超碰| 国产精品中文字幕制服诱惑| 日韩精品一二三四| 99在线精品免费视频九九视| 在线精品小视频| 国产亚洲午夜| 亚洲精选久久| 日韩一区二区三免费高清在线观看 | 99免费精品| 久久精品1区| 神马午夜久久| 欧美日韩日本国产亚洲在线| 亚洲男女av一区二区| 亚洲主播在线| 日韩欧美四区| 日本v片在线高清不卡在线观看| 午夜亚洲福利| 日本欧美一区| 97精品国产福利一区二区三区| 日韩中文首页| 亚洲日本免费电影| 国产亚洲字幕| 日韩国产在线| 蜜桃久久久久久| 国产精品极品国产中出| 国产精品yjizz视频网| 欧美日韩视频一区二区三区| 日本亚州欧洲精品不卡| 美女性感视频久久| 国产伊人久久| 久热综合在线亚洲精品| 久久久91麻豆精品国产一区| 欧美一级精品| 国产精品videossex久久发布| 日韩大片在线观看| 日韩一二三区在线观看| 日韩国产欧美一区二区| 亚洲综合图色| 高清不卡一区| 久久国产视频网| 欧美成人精品三级网站| 日韩精品1区2区3区| 在线成人动漫av| 精品亚洲自拍| 在线综合亚洲| 欧美精品高清| 国产精品99久久免费| 国产精品美女久久久浪潮软件| 日本成人手机在线| 欧洲毛片在线视频免费观看| 国产精品巨作av| 亚洲综合欧美| 99热精品久久| 福利精品在线| 精品国产欧美| 日本欧美一区| 一级成人国产| 亚洲字幕久久| 国产视频一区欧美| 黄色在线网站噜噜噜| 久久精品网址| 国产精品啊啊啊| 国产亚洲欧美日韩精品一区二区三区 | 精品国产亚洲一区二区三区在线| 视频一区日韩精品| 夜久久久久久| 午夜av成人| 蜜桃视频欧美| 激情丁香综合| 在线亚洲欧美| 亚洲综合图色| 欧美亚洲色图校园春色| 亚洲影视一区| 日韩精品视频网站| 在线观看一区| 日本一不卡视频|