
【Python】各大模块应用合集
发布日期:2021-05-19 23:51:24
浏览次数:11
分类:精选文章
本文共 2434 字,大约阅读时间需要 8 分钟。
优化后的技术文章
一、RSA加密解密
利用RSA算法进行加密和解密操作,以下是关键步骤说明:
import rsaen = 65537rsaPrivateKey = rsae.RSA_PrivateKey(n, 86934482296048119190666062003494800588905656017203025617216654058378322103517, 285960468890451637935629440372639283459, 304008741604601924494328155975272418463)# 加密过程with open("encrypted_file", "rb") as f: cipher_text = f.read()# 解密过程plaintext = rsaPrivateKey.decrypt(cipher_text)print(plaintext)
二、Base64编码与解码
1.固定的Base64码表
以下是使用固定的Base64码表进行编码和解码的示例:
import base64plain_text = 'HelloWorld'# 编码base64_bytes = base64.b64encode(plain_text.encode('utf-8'))base64_str = base64_bytes.decode('utf-8')print(base64_str) # 'SGVsbG9Xb3JsZA=='# 解码base64_bytes = base64.b64decode(base64_str)plain_text = base64_bytes.decode('utf-8')print(plain_text) # 'HelloWorld'
2.自定义Base64码表
可以通过自定义码表实现不同编码方式:
import base64import stringoriginal_text = "Base64加密"# 定义新的码表custom_char_table = string.ascii_letters + string.digits + '+/'new_table = str.maketrans(string.ascii_letters + string.digits + '+/', 'ABCDEFGHIMN OPQRSTUVWXYZabcdefghimnopqrstuvwxyz0123456789+-/'.strip())print(new_table) # 测试编码encoded_text = base64.b64decode(original_text.translate(new_table))print(encoded_text)
三、字符串转换
使用str.maketrans
方法进行字符转换,以下是主要示例:
1.单参数转换
transtab = str.maketrans({'a': 'b'}) news = 'apple' print(news.translate(transtab)) # 'bpple'
2.双参数转换
transtab = str.maketrans('ap', 'bs') news = 'apple' print(news.translate(transtab)) # 'bssle'
3.三参数转换
transtab = str.maketrans('ap', 'bs', 'al') news = 'apple' print(news.translate(transtab)) # 'sse'
四、z3求解器
使用z3进行数学求解,以下是常见使用方法:
from z3 import *x = Real('x')y = Real('y')s = Solver()s.add(30 * x + 15 * y == 675)s.add(12 * x + 5 * y == 265)if s.check(): result = s.model() print(result)else: print('无解')
五、哈希库(hashlib)
常规使用方法
import hashlibm = hashlib.sha256()m.update(b'Nobody inspects the spammish repetition'.encode('utf-8'))print(m.hexdigest())
MD5加密示例
import hashlibmd5_hash = hashlib.md5()md5_hash.update('hello world'.encode('utf-8')) print(md5_hash.hexdigest()) print(len(md5_hash.hexdigest())) # MD5摘要长度为32字节
六、其他工具
PyDes密钥对处理
from pyDes import des, PAD_PKCS5DES_KEY = "test*key*"des_key = des(DES_KEY, des.ECB, b'test*key*', pad=PAD_PKCS5)plaintext = '哈哈'.encode('utf-8')ciphertext = des_key.encrypt(plaintext)print(ciphertext.hex()) Plaintext恢复: plaintext = des_key.decrypt(ciphertext) print(plaintext.decode('utf-8'))
七、其他模块
以上为本人在CTF过程中总结的常用工具与方法,持续更新中。如需了解更多技术细节,可参考各模块对应的官方文档或开源项目。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月11日 11时13分40秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java数组
2019-03-15
创建线程方式
2019-03-15
线程池
2019-03-15
Netty读写方法
2019-03-15
LRUCache
2019-03-15
Mac上如何强制关闭应用
2019-03-15
关于Linux系统中touch命令的说明
2019-03-15
剑指Offer03-数组中重复的数字
2019-03-15
将windows里的内容直接复制粘贴到ubuntu,提高效率
2019-03-15
将tomcat设置成window自启动服务
2019-03-15
webservice 远程服务器返回错误:(400)错误的请求
2019-03-15
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
2019-03-15
[PHP] try catch在日常中的使用
2019-03-15
[Linux] 进程间通信
2019-03-15
[PHP] error_reporting(0)可以屏蔽Fatal error错误
2019-03-15
[操作系统]内存连续分配管理方式
2019-03-15
C++ Primer Plus【复习笔记】-【复合类型】
2019-03-15
thinkphp 的一些重要知识点
2019-03-15
Python基础案例教程
2019-03-15
Java学习第二章——Java基本语句
2019-03-15