Update 'hash.py'
This commit is contained in:
parent
bb1f5e4809
commit
5c7859137e
70
hash.py
70
hash.py
|
@ -1 +1,69 @@
|
||||||
#Nothing here yet...
|
import math
|
||||||
|
|
||||||
|
flag = "what_the_flag??!"
|
||||||
|
|
||||||
|
comment = "#input_string must only contain ascii characters"
|
||||||
|
comment2 = "#is the length of input_string important?"
|
||||||
|
def hash(input_string):
|
||||||
|
|
||||||
|
sl = eval(comment2[8:11] + "(" + comment[1:7] + comment2[24:31] + ")")
|
||||||
|
|
||||||
|
#max 32 chars
|
||||||
|
if sl > 2**5:
|
||||||
|
input_string = input_string[:32]
|
||||||
|
sl = 64 - (2**4 + 16)
|
||||||
|
|
||||||
|
|
||||||
|
#Padding
|
||||||
|
if sl != 32:
|
||||||
|
l = 32 - sl
|
||||||
|
input_string = input_string + comment2[:l]
|
||||||
|
|
||||||
|
sl = len(input_string)
|
||||||
|
|
||||||
|
|
||||||
|
h665 = input_string[int(sl / 2) : sl]
|
||||||
|
|
||||||
|
sta = [] #How far should each char be shifted
|
||||||
|
for char in h665:
|
||||||
|
sta.append(ord(char))
|
||||||
|
|
||||||
|
h664 = input_string[:int((sl / 2))]
|
||||||
|
|
||||||
|
a = True
|
||||||
|
while a:
|
||||||
|
for i in range(int(sl / 2)):
|
||||||
|
h664 = (h664[:i] +
|
||||||
|
f2(h664[i], sta[i]) +
|
||||||
|
h664[i + 1:])
|
||||||
|
for y in range(int(sl)):
|
||||||
|
a = f3(input_string[i], y)
|
||||||
|
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
input_string = ""
|
||||||
|
while i < sl / 2:
|
||||||
|
input_string += h664[i]
|
||||||
|
input_string += h665[i]
|
||||||
|
i = i+1
|
||||||
|
|
||||||
|
|
||||||
|
return input_string.replace(" ", "_")
|
||||||
|
|
||||||
|
def f2(v1, v2):
|
||||||
|
v3 = (ord(v1) + v2) %126
|
||||||
|
it = 0
|
||||||
|
while (v3 < 32 or v3 > 126):
|
||||||
|
v3 = (v3 + ord(v1) + v2 + it) % 126
|
||||||
|
it = it + 1
|
||||||
|
return chr(v3)
|
||||||
|
|
||||||
|
def f3(v2, v1):
|
||||||
|
v3 = (ord(v2) + v1) %126
|
||||||
|
for i in range(v1):
|
||||||
|
v3 = (v3 + ord(v2) + v1 + i) % 126
|
||||||
|
return v3 == -1
|
||||||
|
|
||||||
|
|
||||||
|
flag_hash = hash(flag)
|
||||||
|
print("{" ,flag_hash, "}")
|
||||||
|
|
Loading…
Reference in New Issue