43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
from secret import FLAG
|
|
from hashlib import sha256
|
|
|
|
|
|
class hash():
|
|
|
|
def __init__(self, message):
|
|
self.message = message
|
|
|
|
def rotate(self, message):
|
|
return [((b >> 4) | (b << 3)) & 0xff for b in message]
|
|
|
|
def hexdigest(self):
|
|
rotated = self.rotate(self.message)
|
|
return sha256(bytes(rotated)).hexdigest()
|
|
|
|
|
|
def main():
|
|
original_message = b"ready_play_one!"
|
|
original_digest = hash(original_message).hexdigest()
|
|
print(
|
|
f"Find a message that generate the same hash as this one: {original_digest}"
|
|
)
|
|
|
|
while True:
|
|
try:
|
|
message = input("Enter your message: ")
|
|
message = bytes.fromhex(message)
|
|
|
|
digest = hash(message).hexdigest()
|
|
|
|
if ((original_digest == digest) and (message != original_message)):
|
|
print(f"{FLAG}")
|
|
else:
|
|
print("Conditions not satisfied!")
|
|
|
|
except Exception as e:
|
|
print(f"An error occurred while processing data: {e}")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|