【python】crypto pkcs7加解密使用
一、场景
由于爬取某网站视频,遇到加密信息,需要使用脚本模拟实现信息自动转换,实现自动下载
二、以pkcs7为例
import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad Url = 'https://www.iqiyi.com/v_2bytpz1q198.html' #=============================================================================================================== # pkc7补码方式(ECB加密) #=============================================================================================================== class PrpCrypt(object): def __init__(self): self.unpad = lambda date: date[0:-ord(date[-1])] def aes_cipher(self, key, aes_str): # 使用key,选择加密方式 aes = AES.new(key.encode('utf-8'), AES.MODE_ECB) pad_pkcs7 = pad(aes_str.encode('utf-8'), AES.block_size, style='pkcs7') # 选择pkcs7补全 encrypt_aes = aes.encrypt(pad_pkcs7) # 加密结果 encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8') # 解码 encrypted_text_str = encrypted_text.replace("\n", "") # 此处我的输出结果老有换行符,所以用了临时方法将它剔除 return encrypted_text_str # 解密后,去掉补足的空格用strip() 去掉 def decrypt(self, key, decrData): # 解密函数 res = base64.decodebytes(decrData.encode("utf8")) aes = AES.new(key.encode('utf-8'), AES.MODE_ECB) msg = aes.decrypt(res).decode("utf8") return self.unpad(msg) if __name__ == '__main__': # key的长度需要补长(16倍数),补全方式根据情况而定,此处我就手动以‘0’的方式补全的32位key # key字符长度决定加密结果,长度16:加密结果AES(128),长度32:结果就是AES(256) key = "yourme@nxflv@com" # # 加密字符串长同样需要16倍数:需注意,不过代码中pad()方法里,帮助实现了补全(补全方式就是pkcs7) aes_str =Url encryption_result = PrpCrypt().aes_cipher(key, aes_str) print('加密', encryption_result) c = PrpCrypt().decrypt(key, encryption_result) print('解密', c)
主要是对视频网址的加密和解密,有什么用,你懂的。
参考链接:
【Python】Crypto模块 _ RSA加解密、加签验签 - Phoenixy - 博客园
(73条消息) python3 执行AES加密及解密方法_python3使用aes_没有竹蜻蜓的小叮当的博客-CSDN博客
(73条消息) AES实践 pycryptodome 实现(ECB模式)对称加密 – AES(256)加密,pkcs7补全方式_范之度的博客-CSDN博客
(73条消息) Python3中加密与解密详解_cipher.encrypt_0914_h的博客-CSDN博客
python实现AES加密、解密 - 傻白甜++ - 博客园
(73条消息) 利用crypto-js、python实现AES 、DES前后端的加解密_cryptojs python_我是个假程序员的博客-CSDN博客
分类:
Python-Basic
, Tools
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?