에서 해시 확장 공격이 나는 같은 MD5를 생성하는 데 시간을 사용하려면 :파이썬 : 여기 <p></p> 코드입니다 b를 파이썬
k = "secret"
m = "show me the grade"
m2 = "show me the grade and change it to 100"
x = " and change it to 100"
a = md5(k + m)
b = md5(k + m2)
print "have---> " + a.hexdigest() #9f4bb32ac843d6db979ababa2949cb52
print "want---> " + b.hexdigest() #aba1d6fede83a87d9d6e22bf75974599
h = md5(state="9f4bb32ac843d6db979ababa2949cb52".decode("hex"),count=512)
h.update(x)
print h.hexdigest() # these two lines get 958acc96a173fd4d7571ac365db06f65
print md5((k + m + padding(len(k + m)*8))+ x).hexdigest()
def padding(msg_bits):
"""padding(msg_bits) - Generates the padding that should be
appended to the end of a message of the given size to reach
a multiple of the block size."""
index = int((msg_bits >> 3) & 0x3f)
if index < 56:
padLen = (56 - index)
else:
padLen = (120 - index)
# (the last 8 bytes store the number of bits in the message)
return PADDING[:padLen] + _encode((msg_bits & 0xffffffffL, msg_bits>>32), 8)
나도 몰라 왜 마지막 줄 수 없었다 출력 aba1d6fede83a87d9d6e22bf75974599. 패딩에 문제가 있습니까?
우리가 원하는 것을 모릅니다. 어떻게 대답 할 수 있습니까? –
MD5를 생성하기 위해 h를 사용하고 싶습니다. md5 (k + m2) –
이것은 유용한 정보입니다. [질문]을 읽고 귀하의 질문을 통해 당신이 무엇을 기대하고, 무엇을 얻으며, 우리가 원하는 것을 지정하십시오. –