Python Language
해시브
수색…
소개
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'