728x90
반응형
HASH 함수란?
임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수입니다.
함수의 입력 값의 길이가 어떠하든, 결과 값의 길이는 항상 동일하다는 것이 해시함수의 특징입니다.
또한, 동일한 데이터를 입력 값으로 사용할 경우, 결과는 시간이 지나도 같게 나오게 됩니다.
해시 함수의 종류에는, MD5, SHA(SHA-1, SHA-256, SHA-512, SHA-3) 등이 있습니다.
아래 링크는 SHA256을 통해서 해시값을 만들어 볼 수 있는 사이트입니다.
https://www.convertstring.com/ko/Hash/SHA256
보통 해시 값이라는 건 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진수 해시 결과 값입니다.
반응형
'Python' 카테고리의 다른 글
uuid를 활용한 해시 함수의 seed 사용 - 공부하는 도비 (0) | 2022.03.05 |
---|---|
Pythonista3 - 공부하는 도비 (0) | 2020.11.26 |
Python 설치하기, 사용하기 - 공부하는 도비 (0) | 2020.04.02 |