From 25dbce3ee26a808e461d716217183e7f3292994f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 May 2025 01:13:54 +0100 Subject: [PATCH] 2016: d05: ex1: add solution --- 2016/d05/ex1/ex1.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 2016/d05/ex1/ex1.py diff --git a/2016/d05/ex1/ex1.py b/2016/d05/ex1/ex1.py new file mode 100755 index 0000000..2768b1a --- /dev/null +++ b/2016/d05/ex1/ex1.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +import hashlib +import itertools +import sys + + +def solve(input: str) -> str: + def crack_password(door_id: str) -> str: + password: list[str] = [] + for i in itertools.count(): + hash = hashlib.md5((door_id + str(i)).encode()).hexdigest() + if not hash.startswith("00000"): + continue + password.append(hash[5]) + if len(password) == 8: + break + return "".join(password) + + return crack_password(input.strip()) + + +def main() -> None: + input = sys.stdin.read() + print(solve(input)) + + +if __name__ == "__main__": + main()