打开是一个pyc文件,我用的是pycdc进行反编译
# Source Generated with Decompyle++
# File: ezPython.pyc (Python 3.7)
from Crypto.Util.number import *
import base64
import base58
password = open('password.txt', 'r').read()
tmp = bytes_to_long(password.encode('utf-8'))
ans = base64.b64encode(base58.b58encode(str(tmp))).decode()
print("I've forgot my password,could you please help me find the password?")
if ans == 'M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw==':
print('You get the password!')
else:
print('Wrong! try again')
得到的是如下的代码 M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw==
这个东西,password->bytes_to_long->base64->base58
那我们反着过来
import base64
import base58
import hashlib
from Crypto.Util.number import long_to_bytes
ans = 'M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw=='
ans1 = base64.b64decode(ans)
print(ans1)
ans2 = int(base58.b58decode(ans1))
print(ans2)
ans3 = long_to_bytes(ans2)
print(ans3)
flag = hashlib.md5(ans3).hexdigest()
print(flag)
最后那个md5是因为题目给的
得到