无标题无名氏No.65410556 只看PO
2025-03-01(六)17:25:47
ID:pNj9ofX 回应
小白求助
有个网上的福利资源被上传者象征性加了密且放了加密方式,但我不会写解密脚本,
以下是上传者的说明文档:
“
第一个分卷已使用AES加密。您需要使用ECB/PCKS5Padding进行解密。解密脚本请自行编写。
密钥为字符串Hello World的32位md5小写值。
解密后文件的md5为3392f54ea7dbcd0c51a18b48411d6283
解密后正常打开7z文件,密码为字符串Hello World的sha256摘要(也是小写)
如此便可完全解压文件。
”
其中第一个秘钥我通过在线转换得到是b10a8db164e0754105b7a99be72e3fe5
第二个是a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
但我卡在第一步了|д` )
要对这个文件进行解密,需要做一个怎样的东西呢?
jp
无标题无名氏No.65424702
2025-03-03(一)10:43:20 ID: B6Y12Bt
from Crypto.Cipher import AES
def decrypt_file(input_file, output_file, key):
with open(input_file, 'rb') as f:
encrypted_data = f.read()
cipher = AES.new(key, AES.MODE_ECB)
decrypted_data = cipher.decrypt(encrypted_data)
# Remove PKCS7 padding
pad_len = decrypted_data0[0,-1]
pad_len = ord(pad_len) if isinstance(pad_len, bytes) else pad_len
if 1 <= pad_len <= 16:
decrypted_data = decrypted_data[:-pad_len]
# Remove trailing zero bytes
decrypted_data = decrypted_data.rstrip(b'\x00')
with open(output_file, 'wb') as f:
f.write(decrypted_data)
if __name__ == "__main__":
input_file = 'download.7z.001.encrypted'
output_file = 'download.7z.001'
key = b'b10a8db164e0754105b7a99be72e3fe5'
decrypt_file(input_file, output_file, key)
实测成功解密
无标题无名氏No.65424787
2025-03-03(一)10:53:44 ID: B6Y12Bt
https://pan.baidu.com/s/1xLZq0tHS6Mq66i4CAzMhug?pwd=6caz
无标题无名氏No.65432160
2025-03-04(二)01:50:41 ID: pNj9ofX (PO主)
>>No.65424702
这位肥哥,为什么前面的脚本只能padding incorrect呢(`・ω・)