| @@ -1,3 +1,4 @@ | |||
| import itertools | |||
| import sys | |||
| import toolkit | |||
| @@ -6,11 +7,14 @@ import toolkit | |||
| text = sys.stdin.read().strip() | |||
| password1 = ['_' for _ in range(8)] | |||
| password2 = ['_' for _ in range(8)] | |||
| for string, digest in toolkit.md5gen(f'{text}{{i}}', pattern=r'00000.+'): | |||
| for i in itertools.count(): | |||
| digest = toolkit.md5(f'{text}{i}') | |||
| if not digest.startswith('00000'): | |||
| continue | |||
| if '_' in password1: | |||
| password1[password1.index('_')] = digest[5] | |||
| if digest[5] in '01234567' and password2[int(digest[5])] == '_': | |||
| password2[int(digest[5])] = digest[6] | |||
| print(digest, string, ''.join(password1), ''.join(password2)) | |||
| print(digest, ''.join(password1), ''.join(password2)) | |||
| if '_' not in password1 + password2: | |||
| break | |||