本帖最后由 rangersxiaoyan 于 2023-8-20 17:43 编辑
你能通过源码知道我的abc函数写的是什么吗?
[Python] 纯文本查看 复制代码 import hashlib
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
def aes_decrypt(key, encrypted_data):
cipher = AES.new(key, AES.MODE_ECB)
decrypted = cipher.decrypt(bytes.fromhex(encrypted_data))
return unpad(decrypted, AES.block_size).decode()
def abc():
return '看啥!!!'
encrypted_data = """
4b670a0e21783594ade99a1bacb7ba25dabcc64b94a882631c75007d4b494c700342e26e93338f5575b1adeeab3fcc2dd9b011b0a30d
794b638d5f6a143820d464a26e5d94a77bb3b687acbadced06c215ffff14c47989f278632365a1401d942e943b87e013b517dc305c7a36
4b664e204b1c945deb7a9ad802326bcab8f8aa05b1d33ae25f9493ffab38fa79cc8105
"""
while True:
try:
i = input('输入密码:')
hl = hashlib.md5()
hl.update(i.encode("utf-8"))
key = hl.hexdigest().encode()
decrypted_data = aes_decrypt(key, encrypted_data)
exec(decrypted_data)
abc()
input()
break
except BaseException as e:
print(e, abc())
这段代码是一个简单的密码解密程序。它使用了AES对称加密算法和MD5哈希算法。
首先,定义了一个aes_decrypt函数,接受一个密钥和加密数据作为输入。
在函数内部,使用密钥创建一个AES密码器对象,然后使用ECB模式进行解密。
解密后的数据进行了填充处理,并使用unpad函数去除填充,最后将解密后的数据转换为字符串并返回。
接下来,定义了一个名为abc的函数,它返回字符串’看啥!!!'。
然后,给定了一个加密数据encrypted_data,其中包含了被加密的代码。
在主程序中,通过用户输入获取密码,并使用MD5哈希算法对密码进行加密,得到密钥。
然后调用aes_decrypt函数对加密数据进行解密,并将解密后的数据作为代码进行执行。
最后调用abc函数并等待用户输入。如果密码输入错误或解密出错,程序会捕获异常并打印错误信息。
同时会调用abc函数返回’看啥!!!'。
|