0
수정 된 목록을 업데이트하지 못하도록 코드를 작성하려고합니다. 이것을 위해 SHA1 해시 값을 계산하고 있지만 ipython 인터프리터를 다시 시작하면이 해시의 hexdigest()가 다른 결과를 생성합니다. 왜 이런거야? python3에서 SHA1을 사용하여 해싱을해도 결과가 동일하지 않습니다.
In [1]: import hashlib
In [2]: hashid = hashlib.sha1()
In [3]: hashid.update(repr(frozenset(sorted(["a","b","c"]))).encode("utf-8"))
In [4]: hashid.hexdigest()
Out[4]: '53ca01b21fd7cb1996634bb45ad74851f73c45d3'
가 hashid을 다시 초기화하고 작동 같은 ipython3 콘솔에서 다시 해시 계산을 수행 할 때 :
In [7]: exit
[email protected] ~/ $ ipython3
In [1]: import hashlib
In [2]: hashid = hashlib.sha1()
In [3]: hashid.update(repr(frozenset(sorted(["a","b","c"]))).encode("utf-8"))
In [4]: hashid.hexdigest()
Out[4]: '6e5813fcb173e35e81d6138eab4d21482885e7eb'
:
In [5]: hashid = hashlib.sha1()
In [6]: hashid.update(repr(frozenset(sorted(["a","b","c"]))).encode("utf-8"))
In [7]: hashid.hexdigest()
Out[7]: '53ca01b21fd7cb1996634bb45ad74851f73c45d3'
하지만 내 콘솔을 중지하고 다시 시작하는 서로 다른 결과를
왜 이런가요? 그리고 어떻게 동일한 SHA1 해시/hexdigest 결과를 생산할 수있는 동일한 정렬 목록 hasing?
아의 TNX, 의미가 있습니다 ...이 찾고있는 시간을 보냈다 수 :
list
들frozenset
당신에게 고유성 보장을 얻을 것이다 동안, 순서를 보장 한 정렬. 이것은 그것을 많이 분명히합니다. – RvL** "고맙습니다"라고 대답하는 말에 답변을 추가하지 마십시오. ** 답변이 도움이 될 경우 [받아들입니다] (http://stackoverflow.com/help/someone-answers). BTW는 29 가지 질문을 받았지만 첫 질문 만 수락했습니다. 왜? –