Easton's Blog Easton's Blog
首页
  • 编程语言

    • Python
  • 框架

    • Django
  • Mdn (opens new window)
  • HTML
  • CSS
  • JavaScript
  • Mysql
  • PostgreSQL
  • Elasticsearch
  • MongoDB
  • Redis
  • 服务器命令
  • Docker
  • GIT
  • 摄影
  • 草稿
  • 归类方式

    • 分类
    • 标签
    • 归档
  • 关于博客

    • 博客教程
    • 友情链接
    • 关于
导航站
GitHub (opens new window)

Easton Yang

爱生活😊爱学习
首页
  • 编程语言

    • Python
  • 框架

    • Django
  • Mdn (opens new window)
  • HTML
  • CSS
  • JavaScript
  • Mysql
  • PostgreSQL
  • Elasticsearch
  • MongoDB
  • Redis
  • 服务器命令
  • Docker
  • GIT
  • 摄影
  • 草稿
  • 归类方式

    • 分类
    • 标签
    • 归档
  • 关于博客

    • 博客教程
    • 友情链接
    • 关于
导航站
GitHub (opens new window)
  • Python

    • Python学习

    • 代码

      • aes案例
        • 案例
      • hashlib案例
      • log案例
      • sftp案例
      • 单例
      • zip压缩案例
    • 数据结构与算法

  • Django

  • 后端
  • Python
  • 代码
eastonyangxu
2023-09-04
目录

aes案例

# 案例

from Crypto.Cipher import AES

"""
AES加解密,windows和linux使用的库有区别,Crypto在linux和unix使用
"""


class AesCBC:
    @staticmethod
    def encrypt_cbc(data, key, iv):
        # aes加密 CBC ,padding:PKCS7
        cipher = AES.new(key, AES.MODE_CBC, iv)
        x = AES.block_size - (len(data) % AES.block_size)
        if x != 0:
            data = data + chr(x) * x
        msg = cipher.encrypt(data)
        return msg

    @staticmethod
    def decrypt_cbc(data, key, iv):
        # aes解密 CBC ,padding:PKCS7
        cipher = AES.new(key, AES.MODE_CBC, iv)
        msg = cipher.decrypt(data)
        padding_len = ord(msg[len(msg) - 1])
        return msg[0:-padding_len]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#Python
上次更新: 2023/09/04, 18:39:45
好玩的函数
hashlib案例

← 好玩的函数 hashlib案例→

最近更新
01
攻略制作要点
07-18
02
摄影主题拍摄
07-18
03
延时摄影剧本
07-18
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Easton Yang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式