博客
关于我
【Python】各大模块应用合集
阅读量:669 次
发布时间:2019-03-16

本文共 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过程中总结的常用工具与方法,持续更新中。如需了解更多技术细节,可参考各模块对应的官方文档或开源项目。

转载地址:http://xdrqz.baihongyu.com/

你可能感兴趣的文章
[操作系统]内存连续分配管理方式
查看>>
C++ Primer Plus【复习笔记】-【复合类型】
查看>>
thinkphp 的一些重要知识点
查看>>
Python基础案例教程
查看>>
Java学习第二章——Java基本语句
查看>>
形状类似小于等于号的符号是啥
查看>>
C#中combox下拉框禁止键盘输入
查看>>
遇到问题之-yum update无法连接镜像问题解决
查看>>
遇到问题之-httpd服务启动报错182行错误
查看>>
pycharm如何设置(错误、警告类的标准提醒)
查看>>
Python3运行的时候错误:ModuleNotFoundError: No module named 'PIL'
查看>>
PHP是世界上最好的语言?Phython第一个不服
查看>>
Bugku CTF-web6
查看>>
Bugku CTF-web10 头等舱
查看>>
UML-配置图
查看>>
JS高级面向对象(二)-构造函数和原型
查看>>
python入门到秃顶(10):异常
查看>>
ES6_变量生明
查看>>
考研复试英语问答
查看>>
百度背景换肤案例
查看>>