H4sIA密文解密

0x00 简介

这两天在自己的手机流量中抓包,得到了一串奇怪的字符串,冥冥中感觉有些规律,就着手看看
这里列出4条密文,如下:

H4sIAKjkxlsC/8tIzcnJVyjPL0oBAPpDyiYKAAAA
H4sIAKjkxlsC/3PPz0/PSVVwTswtAADEoOB4CwAAAA==
H4sIAKjkxlsC/8soKSkottLXT8rJT9dLLk7J08tLLdFPzi/NK07NyckvAgBa3j+PIAAAAA==
H4sIAKjkxlsC//NUSMxVSMpMBwBVxM+yCAAAAA==

0x01 解密方法

  1. 第一眼看多去是base64加密的;
  2. 第二眼看过去是一串乱码的二进制数据,其实是zip压缩。

这样就可以构建解密过程了:

  1. base64解码
  2. zip解压缩

0x02 解密代码

运行环境使用python3,python2的gzip库没有compress等函数

import gzip
import base64

text = "H4sIAKjkxlsC/8tIzcnJVyjPL0oBAPpDyiYKAAAA"
print( gzip.decompress(base64.b64decode(text)) )

解密结果为

$ python3 uns.py
b'hello word'

0x03 加密代码

import gzip
import base64

plain_texts = [b"hello word",
	b"Google Camp",
	b"https://blog.csdn.net/counsellor",
	b"I am big"
]

for ptext in plain_texts:
	print( base64.b64encode(gzip.compress(ptext)).decode('utf-8') )

0x04 小结

对于乱码的文本就完全没思路了,其实可以多想想,毕竟有共同点。

Python可以使用 `pycryptodome` 库来解析RSA密文。以下是一个简单的示例: ```python from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP # RSA密文和私钥 cipher_text = b'\x92\xd1\xee\x94\x82\xef\xfd\x1eU\x0f\x81\x9a\x8a\x98\x81\xbd\xdd\x19\xbb\x8f\xce\xa8\x9e\x1d\x6d\x06\x5d\x0f\x99\x06\x48\x7b\x98\xbf\x17\x17\x7f\x54\xde\x8c\x3d\x8c\x3b\x27\xec\x29\x94\x0c\x6e\xb7\x40\x87\x8d\x9f\x69\x1d\x8d\x5c\xb3\x0e\x64\x60\x83\x68\x0d\x0e\xf6\x46\x2a\x3e\xd5\x5c\x84\x1b\x9c\x70\x22\x3a\xfd\xdc\x0a\x7d\x13\xea\x28\x68\x2a\x6e\xcb\x4f\x42\x3f\x69\x9b\x0f\x16\x11\x11\x24\x9c\x39\x16\xee\x9f\x8c\x39\xf0\xae\x7e\x6d\x11\x6f\xbe\x3d\x97\x10\x4d\x3e\x0b\x0e\xf7\x9d\x43\x4b\x7a\x1e\x44\x0a\x2a\x81\x77\x47\x40\x61\x8d\x0b\x5c\x30\x15' private_key = b'-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCfA6KlqyR8sZ3Bu7jXov0pnpPdX3pEzZyO6w+2m0cNvWmL9YQ\njQmUk+P9jF0xZz9r7DQjw8JpUTtZ6Z5J8LzXzqXvS5WuL1Bjg3aPcWhnuE2nEgk\n6Q8WwZwqJ0RzD4O2lSdOj8nG+V6rjvG8G+RkZi6kXrPZGtj3Yh+5FrWUJ8xKXaO\nC5qzjjeT4+MGYiE60gJGBGh4vQIDAQABAoGAFKm8pJcKZ2H0UZlO4wW4iFfb7ux\njRUvTjb4QfjC5hE5pHvzDjSdLzUeG23WfNl0OQJ8fWN4sL0/0UbLJLzC2VZJW5R\nBvzB5K0CwI1wL+5NvV9D7XeV6qR8W9zS8mQZ7Yx2y3AxlOv8U0fSbZ6I+94Dv1YB\nDf8kUhWmD9j5Q9JyMN0CQQD7Oiq7YhWYnJUjL4pwiHqXosxv4zqYqJxR2XaL5y2k\nSs9M6xxLx+xyXTr6J0wzJ+7H1E5JqI8a6cK0a9YRvGK9AkEAyf8SCCiE2c5j7y+E\nAQkVXJQgHl9Uc5n2JnA9c5S7a4X8OgjVzW0vJ/a3zGZik1VJCVm+V7sSncxh2O7z\nzQj8NjYvLwJBAL6RvDl8NvGaqQcXG0pWc2qzQwC/3JHw9p3OzB7MlJ+8YJf3SDQs\njzWvLcUg5gjl/4vMEkXJj+O5NyJm8RZOv9kCQQC4Ej8Z9GtYs5+X+s0Xk9VQK2il\nWNBX2KQ+5Nj6nbH5WgX5pH/2Fq6h7PYpT7fErDxhHw+uV8XvDwzDpTc6tW7jAkEA\n4kXf5LHcpC3aZrPZvZJYBx2k4sIa1VbRzC0YjDj6iV3o9yJ7p1UQD4Zf9F1DDXl5\nXm/6yfG4eV4qXu+uNz3KjUzS4w==\n-----END RSA PRIVATE KEY-----' # 使用私钥解密 private_key_obj = RSA.importKey(private_key) cipher = PKCS1_OAEP.new(private_key_obj) plain_text = cipher.decrypt(cipher_text) print(plain_text.decode('utf-8')) ``` 在这个示例中,我们将RSA密文和私钥作为字节串传递给 `RSA.importKey()` 方法来创建私钥对象。然后,我们使用私钥对象创建 `PKCS1_OAEP` 密码对象,并使用该对象解密密文。最后,我们将解密的明文打印到控制台上。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值