栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python中的AES解密和加密,爬虫时碰见AES加密怎么办?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中的AES解密和加密,爬虫时碰见AES加密怎么办?

# coding=utf-8
from Crypto.Cipher import AES
import base64
import time
import json


class Decrypt:
    def __init__(self, key, iv):
        self.key = key.encode('utf-8')
        self.iv = iv.encode('utf-8')


    def pkcs7padding(self, text):
        """明文使用PKCS7填充 """
        bs = 16
        length = len(text)
        bytes_length = len(text.encode('utf-8'))
        padding_size = length if (bytes_length == length) else bytes_length
        padding = bs - padding_size % bs
        padding_text = chr(padding) * padding
        self.coding = chr(padding)
        return text + padding_text

    def aes_decrypt(self, content):
        """AES解密 """
        cipher = AES.new(self.key, AES.MODE_CBC, self.iv)
        if len(content) % 3 == 1:
            content += "=="
        elif len(content) % 3 == 2:
            content += "="
        content = base64.b64decode(content)
        text = cipher.decrypt(content).decode('utf-8')
        return text

    def aes_encrypt(self, content):
        """ AES加密 """
        cipher = AES.new(self.key, AES.MODE_CBC, self.iv)
        # 处理明文
        content_padding = self.pkcs7padding(content)
        # 加密
        encrypt_bytes = cipher.encrypt(content_padding.encode('utf-8'))
        # 重新编码
        result = str(base64.b64encode(encrypt_bytes), encoding='utf-8')
        return result

# if __name__ == '__main__':
#     key = 'xRH8EVswh6WdG5IC'
#     iv = 'xRH8EVswh6WdG5IC'
#
#     a = Decrypt(key=key, iv=iv)
#     d = a.aes_encrypt("timeStamp="+str(int(time.time())))
#
#     print(d)
#     print(a.aes_decrypt(d))

今天有人问我了,我先把代码粘到这,后面找个AES加密的网站,写一下

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753342.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号