My Advent of Code solutions in Python.
kevinyap.ca/2019/12/going-fast-in-advent-of-code/
advent-of-code
python
1import fileinput
2from hashlib import md5
3
4door_id = fileinput.input()[0].strip()
5
6pass_1 = ''
7pass_2 = [None for _ in range(8)]
8
9i = 0
10
11while len(pass_1) < 8 or None in pass_2:
12 digest = md5(door_id + str(i)).hexdigest()
13
14 if digest.startswith('00000'):
15 # print "Hash found! %s (%08i)" % (digest, i)
16
17 if len(pass_1) < 8:
18 pass_1 += digest[5]
19
20 pos = int(digest[5], 16)
21 char = digest[6]
22
23 if pos < 8 and pass_2[pos] is None:
24 pass_2[pos] = char
25
26 i += 1
27
28print "Password 1 is: %s" % pass_1
29print "Password 2 is: %s" % ''.join(pass_2)