python 实现AES加密算法


由于最近项目需要对一些比较敏感信息,比如账号信息,不能明文提供用户,需要加密处理,然后使用的时候再由封装好的程序去解密。

 

1. AES算法简介

    AES算法详解:高级加密标准,它是一种对称加密算法,AES只有一个密钥,这个密钥既用来加密,也用于解密。

AES加密方式有五种:ECB, CBC, CTR, CFB, OFB。
从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现。
CBC 和ECB模式的区别就是:

  • CBC加密需要一个十六位的key(密钥)和一个十六位iv(偏移量)
  • ECB加密不需要iv,只需要key(密钥)

 

2.模块安装

在 Windows下使用AES时要安装的是pycryptodome 模块

pip install pycryptodome 

在 Linux下使用AES时要安装的是pycrypto模块

pip install pycrypto 

 

3.AES的ECB 模式实现

import base64
from Crypto.Cipher import AES

class EncryptDate(object):
    def __init__(self):
        self.key = "abcx2211230CoJUm".encode("utf-8")                          # 初始化密钥
        self.iv = "9999999999999999".encode("utf-8")                            # 初始化偏移量
        self.length = 16                                        # 初始化数据块大小
        self.aes = AES.new(self.key, AES.MODE_CBC, self.iv)     # 初始化AES,ECB模式的实例
        # 截断函数,去除填充的字符
        self.unpad = lambda s: s[0:-s[-1]]

    def pad(self, text):
        """
        填充函数,使被加密数据的字节码长度是block_size的整数倍
        """
        count = len(text.encode('utf-8'))
        add = self.length - (count % self.length)
        entext = text + (chr(add) * add)
        return entext

    def encrypt(self, encrData):  # 加密函数
        a = self.pad(encrData)
        res = self.aes.encrypt(a.encode("utf-8"))
        msg = str(base64.b64encode(res), encoding="utf8")
        return msg

    def decrypt(self, decrData):  # 解密函数
        res = base64.decodebytes(decrData.encode("utf-8"))
        msg_text = self.aes.decrypt(res)
        decrypt_text = self.unpad(msg_text).decode('utf8')
        return decrypt_text


if __name__ == '__main__':
    pwd = '&HKJASBkjs#&1'
    pwd1 = EncryptDate().encrypt(pwd)
    pwd2 = EncryptDate().decrypt(pwd1)
    print('原始密码:',pwd)
    print('加密密码:',pwd1)
    print('解密密码:',pwd2)

 

版权声明:本文为CSDN博主「埃菲尔没有塔尖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38819889/article/details/123642201




评论

支持上传图片(拖动图片或者截图粘贴)

129 评论
nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 20:36:02 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:37:00 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:29:11 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:28:18 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:27:08 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:27:02 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:27:00 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:26:58 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:26:56 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:26:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:26:51 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:25:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:24:31 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:23:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:23:24 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:22:57 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:22:25 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:21:52 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:21:21 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:56 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:20 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:15 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:13 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:11 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:09 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:07 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:20:04 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:19:56 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:19:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:19:52 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:19:47 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:19:45 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:19:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:18:05 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:16:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:16:52 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:16:48 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:16:46 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:16:44 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:16:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:16:39 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:14:56 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:13:55 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:13:15 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:12:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:11:49 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:11:17 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:10:48 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:10:21 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:54 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:22 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:21 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:17 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:15 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:10 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:09:08 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:08:13 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 19:07:16 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:54:08 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:52:22 回复

555

@@KiUqnChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:51:03 回复

555

nZkkAbWB'"Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:50:58 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:50:53 回复

555

nZkkAbWBizTbdbH2'Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:47:29 回复

555

-1" OR 5*5=25 -- Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:44:22 回复

555

-1' OR 5*5=25 -- Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:44:19 回复

555

-1 OR 5*5=25Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:44:17 回复

555

-1 OR 5*5=25 -- Chrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:44:14 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:44:12 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:42:52 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:41:47 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:41:43 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:41:39 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:41:37 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:41:33 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:41:30 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:41:27 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:40:38 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:39:42 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:39:12 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:38:44 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:38:20 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:37:55 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:37:33 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:37:08 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:36:46 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:36:11 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:36:09 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:36:07 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:36:01 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:35:59 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:35:55 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:35:53 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:35:21 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:34:41 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:29:53 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:29:27 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:28:43 回复

(select 198766*667891 from DUAL)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:28:41 回复

(select 198766*667891)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:28:38 回复

@@obbQo

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:28:36 回复

555����%2527%2522\'\"

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:28:34 回复

555'"

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:28:32 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:28:31 回复

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:27:47 回复

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:27:12 回复

555PgnON339')) OR 340=(SELECT 340 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:26:38 回复

555LqMMEMFQ') OR 62=(SELECT 62 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:26:12 回复

555OH7Sghqo' OR 603=(SELECT 603 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:25:25 回复

555-1)) OR 192=(SELECT 192 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:24:54 回复

555-1) OR 832=(SELECT 832 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:24:25 回复

555-1 OR 247=(SELECT 247 FROM PG_SLEEP(15))--

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:23:42 回复

555q7yHNSMc'

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:23:21 回复

555-1 waitfor delay '0:0:15' --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:23:03 回复

555-1)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:22:45 回复

555-1

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:22:30 回复

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:22:16 回复

5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:22:01 回复

5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:21:40 回复

555*if(now()=sysdate(),sleep(15),0)

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:21:16 回复

-1" OR 5*5=25 or "RpstqKMK"="

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:21:14 回复

-1' OR 5*5=25 or '88FKgrJt'='

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:21:07 回复

-1" OR 5*5=25 --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:21:04 回复

-1' OR 5*5=25 --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:21:01 回复

-1 OR 5*5=25

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:20:57 回复

-1 OR 5*5=25 --

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:20:55 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:20:19 回复

555

nZkkAbWBChrome/131.0.0.0Windows NT 10.0; Win64; x64
2026-04-10 18:19:38 回复

555