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

上一篇:解决 搭载win10+ubuntu双系统的电脑在win10系统更新后引导界面消失的问题
下一篇:【Python】各大 内置方法、语法 合集

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月11日 11时13分40秒