Python

hashlib을 이용한 binary hash value 생성 - 공부하는 도비

DOVISH WISDOM 2022. 3. 5. 15:52  
728x90
반응형

HASH 함수란? 

임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수입니다. 

함수의 입력 값의 길이가 어떠하든, 결과 값의 길이는 항상 동일하다는 것이 해시함수의 특징입니다.

또한, 동일한 데이터를 입력 값으로 사용할 경우, 결과는 시간이 지나도 같게 나오게 됩니다.

 

해시 함수의 종류에는, MD5, SHA(SHA-1, SHA-256, SHA-512, SHA-3) 등이 있습니다. 

 

아래 링크는 SHA256을 통해서 해시값을 만들어 볼 수 있는 사이트입니다.

https://www.convertstring.com/ko/Hash/SHA256

 

SHA256 해시 - 온라인 SHA256 해시 생성기

 

www.convertstring.com

 

보통 해시 값이라는 건 16진수로 결과가 나오게 되는데, 

오늘 제가 알아볼 건, 파이썬의 hashlib 모듈을 사용한 2진수 출력을 가진 해시 함수 설계입니다. 

 

import hashlib

def HashFunction(text):
  hex_hash_value = hashlib.sha256(text.encode()).hexdigest() 
  bin_hash_value = "{0:08b}".format(int(hex_hash_value, 16))
  return bin_hash_value

text = "I am dobby"
print(HashFunction(text))

hashlib라는 모듈을 import 해주고, 저는 hashlib 모듈 중 sha256을 사용했습니다. 

HashFunction함수의 매개변수로 "I am dobby"를 넘겨주면, 이 입력 값에 대한 해시 값이 출력됩니다.

 

물론, binary 값으로 변경하지 않고도 출력 할 수 있습니다. 

hex_hash_value 가 16진수 해시 결과 값이고, bin_hash_value 가 2진수 해시 결과 값입니다. 

 

 

 

 

반응형