1. hashlib 개요
암호화 서비스 관련: 14. 암호화 서비스
그중 hashlib는 보안 해싱 및 메시지 다이제스트를 포함하며 SHA1, SHA224, SHA256, SHA384, SHA512, md5 등과 같은 다양한 암호화 알고리즘 인터페이스를 제공합니다.
import hashlib m = hashlib.md5() #创建hash对象, md5:(message-Digest Algorithm 5)消息摘要算法,得出一个128位的密文 PRint m #<md5 HASH object @ 000000000254ADF0> m.update('BeginMan')#更新哈希对象以字符串参数 print m.digest() #返回摘要,作为二进制数据字符串值 print m.hexdigest() #返回十六进制数字字符串 0b28251e684dfbd9102f8b6f0281c0c5print m.digest_size #16 print m.block_size #64
new()를 사용하여 지정된 암호화 모드로 해시 객체를 생성합니다
new(name, string='') """ Return a new hashing object using the named algorithm; optionally initialized with a string. """ h = hashlib.new('md5')print h #<md5 HASH object @ 000000000260BDB0>h2 = hashlib.new('ripemd160','what')print h2 #<ripemd160 HASH object @ 000000000271B9F0>h.update('beginman')print h.hexdigest() #666fc5baa93a7fb207c5bfff03b67732#等效s = hashlib.md5() s.update('beginman')print s.hexdigest() #666fc5baa93a7fb207c5bfff03b67732print h2.hexdigest() #9c1185a5c5e9fc54612808977ee8f548b2258d31 三、常用属性 print hashlib.algorithms #('md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512') 列出所有加密算法 print h.digest_size #16 产生的散列的字节大小。 print h.block_size #64 The internal block size of the hash algorithm in bytes.
4. 일반적인 방법
hash.update(arg)
문자열 매개변수로 해시 객체를 업데이트합니다. 동일한 해시 객체가 이 메서드를 반복적으로 호출하면 m.update(a)는 m.update(a+b)와 동일합니다.
hash.digest()
다이제스트를 이진 데이터 문자열 값으로 반환합니다.
hash.hexdigest()
16진수 데이터 문자열 값으로 요약을 반환합니다.
hash.copy()
테스트 파일에서 가장 최근에 복사한
복사 테스트를 위해서는 복사한 후 파일의 MD5 값을 비교하여 복사가 완료되었는지 확인해야 합니다. Google과 Baidu는 모두 md5 모듈을 사용하여 모든 파일을 메모리로 읽어 들입니다. md5를 계산할 때 크기가 1G를 초과하는 파일을 계산하면 오류가 발생합니다. timespace님이 MD5를 증분계산하는 방법을 알려주셨는데, 기록해 두세요:
#!/usr/bin/env pythonimport hashlibimport sys def main(): if len(sys.argv) != 2: sys.exit('Usage: %s file' % sys.argv[0]) filename = sys.argv[1] m = hashlib.md5() with open(filename, 'rb') as fp: while True: blk = fp.read(4096) # 4KB per block if not blk: break m.update(blk) print m.hexdigest(), filenameif __name__ == '__main__': main()
위는 Python 모듈에서 hashlib를 학습하는 내용입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(www. php.cn)!