Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 보안 해시 및 메시지 다이제스트

<시간/>

보안 해시 및 메시지 다이제스트 프로세스를 위해 hashlib 모듈을 사용해야 합니다. 이 모듈은 SHA1, SHA224, SHA256, SHA512 등과 같은 다양한 보안 해시 알고리즘에 대한 공통 인터페이스를 구현합니다. 또한 RSA의 MD5 알고리즘도 구현합니다. 이전 알고리즘은 메시지 다이제스트(Message Digest)로 알려져 있고 새로운 방법은 보안 해시(Secure Hash)라고 합니다.

이 모듈을 사용하려면 파이썬 코드에서 hashlib 모듈을 가져와야 합니다.

hashlib 가져오기

이 방법에는 md5, sha1, sha224, sha256, sha512와 같은 미리 정의된 알고리즘이 있습니다. OpenSSL 라이브러리에서 알고리즘을 추가할 수 있습니다.

hashlib 모듈의 일부 메서드, 상수는 다음과 같습니다. -

상수 hashlib.algorithm_guranted

다른 모든 플랫폼에 대해 이 모듈이 지원하는 해시 알고리즘의 이름을 반환합니다.

상수 hashlib.algorithm_available

실행 중인 Python 인터프리터에서 사용할 수 있는 해시 알고리즘의 이름을 반환합니다.

상수 hashlib.digest_size

결과 해시의 크기를 바이트 단위로 반환합니다.

상수 hashlib.block_size

해시 알고리즘의 내부 블록 크기를 바이트 단위로 반환합니다.

메서드 hashlib.new(이름[, 데이터])

생성자입니다. 원하는 알고리즘 이름을 첫 번째 인수로 사용합니다. OpenSSL 라이브러리에서 미리 정의된 해시 또는 기타 알고리즘을 사용할 수 있습니다.

메소드 hashlib.update(arg)

이 메소드는 주어진 인수로 해시 객체를 업데이트하는 데 사용됩니다. 이 함수의 반복 호출은 연결된 인수를 사용한 단일 호출과 동일합니다.

메소드 hashlib.digest()

이 메서드는 업데이트 메서드를 통해 전달된 요약 데이터를 반환하는 데 사용됩니다. 바이트 객체의 크기는 digest_size와 동일합니다. 0에서 255까지의 전체 범위의 바이트를 포함할 수 있습니다.

메소드 hashlib.hexdigest()

이 방법은 다이제스트 방법과 동일하지만 결과에는 16진수 값만 포함됩니다. 이 방법은 매우 쉽게 인터넷을 통해 데이터를 전송하는 데 사용됩니다.

예시 코드

import hashlibmy_hash1 =hashlib.md5() #md5를 선택하고 bytesupdate_bytes =b'Python123'my_hash1.update(update_bytes)print("다이제스트 후 결과:" + str(my_hash1.hexdigest())))print( "다이제스트 크기:" + str(my_hash1.digest_size))my_hash2 =hashlib.sha256() #SHA256을 선택하고 동일한 바이트열로 업데이트my_hash2.update(update_bytes)print("다이제스트 후 결과:" + str(my_hash2.hexdigest()) )print("다이제스트 크기:" + str(my_hash2.digest_size))

출력

소화 후 결과:ae35eacb1cb6f6d38c29a04ecb2d7471다이제스트 크기:16소화 후 결과:bba32ba33d6a7f3e02a96e2d7ee6860765780aee42b89180073