2016-12-05 14:10:15 +00:00
|
|
|
|
Advent of Code
|
|
|
|
|
|
|
|
|
|
--- Day 5: How About a Nice Game of Chess? ---
|
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
You are faced with a security door designed by Easter Bunny engineers that
|
|
|
|
|
seem to have acquired most of their security knowledge by watching hacking
|
|
|
|
|
movies.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
The eight-character password for the door is generated one character at a
|
|
|
|
|
time by finding the MD5 hash of some Door ID (your puzzle input) and an
|
|
|
|
|
increasing integer index (starting with 0).
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
A hash indicates the next character in the password if its hexadecimal
|
|
|
|
|
representation starts with five zeroes. If it does, the sixth character in
|
|
|
|
|
the hash is the next character of the password.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
|
|
|
|
For example, if the Door ID is abc:
|
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
• The first index which produces a hash that starts with five zeroes is
|
|
|
|
|
3231929, which we find by hashing abc3231929; the sixth character of the
|
|
|
|
|
hash, and thus the first character of the password, is 1.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
• 5017308 produces the next interesting hash, which starts with
|
|
|
|
|
000008f82..., so the second character of the password is 8.
|
|
|
|
|
|
|
|
|
|
• The third time a hash starts with five zeroes is for abc5278568,
|
|
|
|
|
discovering the character f.
|
|
|
|
|
|
|
|
|
|
In this example, after continuing this search a total of eight times, the
|
|
|
|
|
password is 18f47a30.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
|
|
|
|
Given the actual Door ID, what is the password?
|
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
Your puzzle answer was 4543c154.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
|
|
|
|
--- Part Two ---
|
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
As the door slides open, you are presented with a second door that uses a
|
|
|
|
|
slightly more inspired security mechanism. Clearly unimpressed by the last
|
|
|
|
|
version (in what movie is the password decrypted in order?!), the Easter
|
|
|
|
|
Bunny engineers have worked out a better solution.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
Instead of simply filling in the password from left to right, the hash now
|
|
|
|
|
also indicates the position within the password to fill. You still look for
|
|
|
|
|
hashes that begin with five zeroes; however, now, the sixth character
|
|
|
|
|
represents the position (0-7), and the seventh character is the character to
|
|
|
|
|
put in that position.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
A hash result of 000001f means that f is the second character in the
|
|
|
|
|
password. Use only the first result for each position, and ignore invalid
|
|
|
|
|
positions.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
|
|
|
|
For example, if the Door ID is abc:
|
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
• The first interesting hash is from abc3231929, which produces
|
|
|
|
|
0000015...; so, 5 goes in position 1: _5______.
|
|
|
|
|
|
|
|
|
|
• In the previous method, 5017308 produced an interesting hash; however,
|
|
|
|
|
it is ignored, because it specifies an invalid position (8).
|
|
|
|
|
|
|
|
|
|
• The second interesting hash is at index 5357525, which produces
|
|
|
|
|
000004e...; so, e goes in position 4: _5__e___.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
You almost choke on your popcorn as the final character falls into place,
|
|
|
|
|
producing the password 05ace8e3.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
Given the actual Door ID and this new method, what is the password? Be extra
|
|
|
|
|
proud of your solution if it uses a cinematic "decrypting" animation.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
2018-03-15 16:24:23 +00:00
|
|
|
|
Your puzzle answer was 1050cbbd.
|
2016-12-05 14:10:15 +00:00
|
|
|
|
|
|
|
|
|
Your puzzle input was ojvtpuvg.
|
|
|
|
|
|
|
|
|
|
References
|
|
|
|
|
|
|
|
|
|
Visible links
|
|
|
|
|
. http://adventofcode.com/
|
|
|
|
|
. http://adventofcode.com/2016/about
|
|
|
|
|
. http://adventofcode.com/2016/support
|
|
|
|
|
. http://adventofcode.com/2016/events
|
|
|
|
|
. http://adventofcode.com/2016/settings
|
|
|
|
|
. http://adventofcode.com/2016/auth/logout
|
|
|
|
|
. http://adventofcode.com/2016
|
|
|
|
|
. http://adventofcode.com/2016
|
|
|
|
|
. http://adventofcode.com/2016/leaderboard
|
|
|
|
|
. http://adventofcode.com/2016/stats
|
|
|
|
|
. http://adventofcode.com/2016/sponsors
|
|
|
|
|
. http://adventofcode.com/2016/sponsors
|
|
|
|
|
. https://www.detroitlabs.com/careers
|
|
|
|
|
. https://en.wikipedia.org/wiki/Hackers_(film)
|
|
|
|
|
. https://en.wikipedia.org/wiki/WarGames
|
|
|
|
|
. https://en.wikipedia.org/wiki/MD5
|
|
|
|
|
. https://en.wikipedia.org/wiki/Hexadecimal
|
|
|
|
|
. https://www.youtube.com/watch?v=NHWjlCaIrQo&t=25
|
|
|
|
|
. http://adventofcode.com/2016
|