Skip to content

Commit 2e91325

Browse files
committed
Add solution source code for HiddenHash in solution.html
1 parent ee4c421 commit 2e91325

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

HiddenHash/solution/solution.html

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,47 @@
121121
a[1] ^ 0xFA ^ 0xAF ^ a[6] ^ 0x65 ^ 0x65 = 0x02
122122
a[2] ^ 0xCA ^ a[7] ^ 0xEF ^ 0x24 = 0x22
123123
a[3] ^ a[4] ^ 0x5E ^ 0xAC = 0xF5
124-
8 уравнений, 8 неизвестных. Ключ 53Kur3dh удовлетворяет всем этим условиям.
124+
8 уравнений, 8 неизвестных. Ключ 53Kur3dh удовлетворяет всем этим условиям. Всего тут 256 верных последовательностей
125+
байт, среди которых нужно выбрать читаемую строчку.
126+
4) Решение на python
127+
#!/usr/bin/python
128+
129+
def testt(s):
130+
for c in s:
131+
if ord(c) >= ord('0') and ord(c) <='z':
132+
continue
133+
else:
134+
return 0
135+
return 1
136+
a=['','','','','','','','']
137+
for c in range(127):
138+
a[0] = chr(c)
139+
a[6] = chr(0xFE ^ ord(a[0]) ^ 0xC7 ^ 0x96 ^ 0xFE)
140+
a[5] = chr(ord(a[0]) ^ 0xAC ^ 0xFC ^ 0x45 ^ 0x13)
141+
a[3] = chr(ord(a[5]) ^ 0x5C ^ 0xF5 ^ 0xef)
142+
a[1] = chr(0xFA ^ 0xAF ^ ord(a[6]) ^ 0x65 ^ 0x65 ^ 0x02)
143+
a[7] = chr(ord(a[1]) ^ 0xCA ^ 0xBE ^ 0x83 ^ 0x13 ^ 0xbf)
144+
a[4] = chr(ord(a[3]) ^ 0x5E ^ 0xAC ^ 0xF5)
145+
a[2] = chr(0xCA ^ ord(a[7]) ^ 0xEF ^ 0x24 ^ 0x22)
146+
if testt(a):
147+
print "".join(a)
148+
Дает 16 возможных ключей
149+
06Npw6am
150+
17Oqv7`l
151+
24Lru4co
152+
35Mst5bn
153+
42Jts2ei
154+
53Kur3dh - верный ключ.
155+
60Hvq0gk
156+
71Iwp1fj
157+
8>Fx>ie
158+
9?Gy~?hd
159+
:<Dz}<kg
160+
;=E{|=jf
161+
<:B|{:ma
162+
=;C}z;l`
163+
>8@~y8oc
164+
?9Ax9nb
165+
125166
</pre>
126167
</body>

0 commit comments

Comments
 (0)