Python 모듈 학습 hashlib

黄舟
풀어 주다: 2016-12-17 16:44:57
원래의
1198명이 탐색했습니다.

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(&#39;BeginMan&#39;)#更新哈希对象以字符串参数
print m.digest()    #返回摘要,作为二进制数据字符串值
print m.hexdigest() #返回十六进制数字字符串    0b28251e684dfbd9102f8b6f0281c0c5print 
m.digest_size #16
print m.block_size  #64
로그인 후 복사

new()를 사용하여 지정된 암호화 모드로 해시 객체를 생성합니다

new(name, string=&#39;&#39;)     """
     Return a new hashing object using the named algorithm;
     optionally initialized with a string.     """
h = hashlib.new(&#39;md5&#39;)print h     #<md5 HASH object @ 000000000260BDB0>h2 = hashlib.new(&#39;ripemd160&#39;,&#39;what&#39;)print h2    #<ripemd160 HASH object @ 000000000271B9F0>h.update(&#39;beginman&#39;)print h.hexdigest() #666fc5baa93a7fb207c5bfff03b67732#等效s = hashlib.md5()
s.update(&#39;beginman&#39;)print s.hexdigest() #666fc5baa93a7fb207c5bfff03b67732print h2.hexdigest()    #9c1185a5c5e9fc54612808977ee8f548b2258d31
三、常用属性
print hashlib.algorithms    #(&#39;md5&#39;, &#39;sha1&#39;, &#39;sha224&#39;, 
&#39;sha256&#39;, &#39;sha384&#39;, &#39;sha512&#39;)    列出所有加密算法
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(&#39;Usage: %s file&#39; % sys.argv[0])

    filename = sys.argv[1]
    m = hashlib.md5()
    with open(filename, &#39;rb&#39;) as fp: 
        while True:
            blk = fp.read(4096) # 4KB per block
            if not blk: break
            m.update(blk)    print m.hexdigest(), filenameif __name__ == &#39;__main__&#39;:
    main()
로그인 후 복사

위는 Python 모듈에서 hashlib를 학습하는 내용입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(www. php.cn)!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿