2017-09-06 4 views
1

로이 같은 문자열을 허용하지 않습니다. 불행하게도 파이썬은 동일로를 허용하지 않습니다 : 두 문자열파이썬은 내가 파이썬 꽤 초보자 그리고 난 다음 상황에 붙어 같은

해시 두 번 :

c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec

I

import hashlib 
h=hashlib.sha512() 
username='admin' 
username=username.encode('utf-8') 
h.update(username) 
hexdigest=h.hexdigest() 
hlist=open("database.txt")#masterhash 
lines=hlist.readlines() 
userhash=lines[0]#masterhash in line 0 
if userhash == hexdigest: # it doesent accept them as the same 
     text = "True" 
else: 
     text="False" 

내가 이미 objectypes을 확인 정말로 문제를 이해하지 못합니다.

+0

네 c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec – loekarbona

답변

1

문제는이 라인 :이 목록에

lines = hlist.readlines() 

각 값은 (print을 보내고 때 통지하지 않을 수 있습니다) 뒤에 줄 바꿈이있을 것이다. 너 strip이 꺼져 있는지 확인하십시오. 당신은 당신이 각 라인의 끝에 새 라인 문자로 라인의 목록을 얻을 readlines() 사용하는 경우

userhash = lines[0].strip() 
+0

이 – loekarbona

0

readlines()은 줄 끝에 줄 바꿈을 반환합니다. "A"와 "A \ n"을 비교하고 있습니다. 이 시도 :

if userhash.strip() == hexdigest 
+0

는 – loekarbona

0

, 당신이 할 수있는 두 가지 옵션 중 하나를

옵션 # 1 :

lines = hlist.readlines() 
userhash = lines[0].rstrip() 

옵션 # 2 :

lines = hlist.read().splitlines() 
userhash = lines[0] 
+0

가 대단히 감사합니다 대단히 감사합니다 대단히 감사합니다 – loekarbona