2013-08-21 6 views
-1

내가 MD5 해시로 문자열을 변환하려면 다음 코드를 사용하고 있습니다 :hashlib md5가 실제로 md5로 변경되지 않습니다?

password = passwd.hexdigest() 

passwd 파일은 가정으로 MD5 해시로 그 회전되도록 'test123'가정된다.

6adf97f83acf6453d4a6a4b1070f3754 

을 당신이 해시를 해독 할 때 지금은 'test123'로 돌아 가지 않습니다 : 그것은 다음 나에게주는

.

이 'test123'로 돌아갑니다 올바른 MD5 해시됩니다 :

cc03e747a6afbbcbf8be7668acfebee5 

이 코드입니다 :

passw = request.forms.get('password') 
password = hashlib.md5(str(passw)).hexdigest() 

이 나에게 올바른 가역을 제공합니다, 그래서 나는 이것을 해결할 수있는 방법 해시시?

+1

'passwd.hexdigest' 란 무엇입니까? "* 해시를 해독하면 다시 test123 *으로 돌아 가지 않습니다."라는 의미는 무엇입니까? –

+2

'hashlib.md5 ("test123"). hexdigest()'나에게'cc03e747a6afbbcbf8be7668acfebee5'를 준다. – alecxe

+0

@JonClements 원래 게시물을 편집했다. –

답변

3

6adf97f83acf6453d4a6a4b1070f3754은 실제로 "없음"의 md5 값이므로 어딘가 다른 곳에서 잘못된 결과를 얻을 수 있습니다.

실제로는 request.forms에서 passw을 가져 오지 않고 None을 str()으로 구문 분석 한 다음 md5(). hexdigest()에 제공하면 결과가 나타납니다.

+0

그럴 수도 있지만 request.forms가 있어야합니다. –

+1

@JasonDecastro''request.forms.get ('password')''의 결과를 기록하거나 출력하려고 할 수 있습니다. 만약 당신이''password''에 무엇인가를 전달하고''None''을 얻으면, 당신은 이 부분에서 문제가 발생합니다. "hashlib md5가 실제로 md5로 바뀌지 않는 것과 다른 질문입니까?" –

+2

@JasonDecastro 당신이 올린 코드는'password' 필드가 보내지지 않는다는 것을 의미합니다 ...'request.forms [ 'password']'로 바꾸고 대신'KeyError'를 처리하십시오 ... –

관련 문제