파이썬 3을 사용하여 stdin에서 md5 해시를 계산하려고합니다.Python 3 표준 입력에서 파일에서 md5 해시를 생성하는 방법은 무엇입니까?
다음은 반환되는 오류 메시지입니다. 왜 그것이 md5 해쉬를 반환하지 않는지 나는 알 수 없다. 어떤 도움을 주셔서 감사합니다.
$./pymd5.py < tmp.pdf
Traceback (most recent call last):
File "./pymd5.py", line 29, in <module>
main()
File "./pymd5.py", line 25, in main
print(m.hexdigest())
TypeError: 'str' does not support the buffer interface
$
코드 :
#!/usr/local/bin/python3.2
import sys
import hashlib
BUFSIZE = 4096
def make_streams_binary():
sys.stdin = sys.stdin.detach()
sys.stdout = sys.stdout.detach()
def main():
make_streams_binary()
m = hashlib.md5()
while True:
data = sys.stdin.read(BUFSIZE)
if not data:
break
m.update(data)
print(m.hexdigest())
if __name__ == "__main__":
main()
[TypeError : 'str'은 버퍼 인터페이스를 지원하지 않습니다.] (http://stackoverflow.com/questions/5471158/typeerror-str-does-not-support-the-buffer-interface) – agf
I 미안하지만 문제가 무엇인지 설명하지 못합니다. –