수색…


소개

hashlib은 여러 가지 보안 해시 및 메시지 다이제스트 알고리즘에 대한 공통 인터페이스를 구현합니다. FIPS 보안 해시 알고리즘 SHA1, SHA224, SHA256, SHA384 및 SHA512가 포함됩니다.

문자열의 MD5 해시

이 모듈은 다양한 보안 해시 및 메시지 다이제스트 알고리즘에 대한 공용 인터페이스를 구현합니다. RSA의 MD5 알고리즘 (인터넷 RFC 1321에 정의)뿐만 아니라 FIPS 보안 해시 알고리즘 SHA1, SHA224, SHA256, SHA384 및 SHA512 (FIPS 180-2에서 정의 됨)가 포함됩니다.

각 해시 유형마다 하나의 생성자 메소드가 있습니다. 모두 동일한 간단한 인터페이스로 해시 객체를 반환합니다. 예 : sha1() 을 사용하여 SHA1 해시 객체를 만듭니다.

hash.sha1()

이 모듈에 항상 존재하는 해시 알고리즘의 생성자는 md5() , sha1() , sha224() , sha256() , sha384()sha512() 입니다.

이제 update() 메서드를 사용하여이 객체에 임의의 문자열을 제공 할 수 있습니다. 언제든지 digest() 또는 hexdigest() 메소드를 사용하여 지금까지 입력 된 문자열 연결의 다이제스트를 요청할 수 있습니다.

hash.update(arg)

해시 객체를 문자열 arg로 업데이트하십시오. 반복 호출은 모든 인수를 연결 한 단일 호출과 동일합니다. m.update (a); m.update (b)는 m.update (a + b)와 동일합니다.

hash.digest()

지금까지 update () 메소드에게 건네지는 캐릭터 라인의 다이제스트를 돌려줍니다. null 바이트를 포함하여 비 ASCII 문자를 포함 할 수있는 digest_size 바이트의 문자열입니다.

hash.hexdigest()

다이제스트를 제외하고 digest ()와 마찬가지로 16 진수 만 포함하는 double 길이의 문자열로 반환됩니다. 이것은 전자 메일 또는 기타 비 - 바이너리 환경에서 값을 안전하게 교환하는 데 사용될 수 있습니다.

다음은 그 예입니다.

>>> import hashlib
>>> m = hashlib.md5()
>>> m.update("Nobody inspects")
>>> m.update(" the spammish repetition")
>>> m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
>>> m.hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'
>>> m.digest_size
16
>>> m.block_size
64

또는:

hashlib.md5("Nobody inspects the spammish repetition").hexdigest()
    'bb649c83dd1ea5c9d9dec9a18df0ffe9'

OpenSSL에서 제공하는 알고리즘

원하는 알고리즘의 문자열 이름을 첫 번째 매개 변수로 사용하는 일반 new() 생성자는 OpenSSL 라이브러리에서 제공 할 수있는 다른 알고리즘뿐만 아니라 위에 나열된 해시에 대한 액세스를 허용하기 위해 존재합니다. 명명 된 생성자는 new() 보다 훨씬 빠르며 선호되어야합니다.

OpenSSL에서 제공하는 알고리즘과 함께 new() 사용 :

>>> h = hashlib.new('ripemd160')
>>> h.update("Nobody inspects the spammish repetition")
>>> h.hexdigest()
'cc4a5ce1b3df48aec5d22d1f16b894a0b894eccc'


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow