반응형
Python에서 해싱을 간편하게 진행시킬 수 있도록 해주는 라이브러리인
hashlib에 대하여 간략하게 소개해보고 사용 방법 예시를 살펴보도록 하겠습니다.
hashlib에서 지원하는 해시 함수 종류
hashlib에서는 과거에 많이 활용되던 방법인 MD5 등부터
비교적 최신 해시 알고리즘인 SHA-3, BLAKE2 등까지
많은 종류의 해시 함수를 제공하고 있습니다.
지원하는 해시 함수의 종류는 아래와 같이 확인이 가능합니다.
import hashlib
print(hashlib.algorithms_guaranteed)
# {'shake_128', 'blake2b', 'sha256', 'sha3_384', 'sha3_512', 'sha224', 'sha3_256', 'shake_256', 'sha1', 'sha512', 'md5', 'blake2s', 'sha3_224', 'sha384'}
hashlib 해싱 방법 예시
hashlib 모듈을 활용하여 해싱을 진행하는 방법은 매우 간단합니다.
원하는 문자열을 인코딩한 뒤, 아래와 같은 형태로 원하는 해시 함수를 적용해주면 완료됩니다.
import hashlib
password = "123456" # 해싱을 원하는 문자열 예시
encoded_password = password.encode('utf-8') # 인코딩 필요!!!
# SHA-256
sha256_hash = hashlib.sha256(encoded_password).hexdigest()
# SHA-3
sha3_hash = hashlib.sha3_256(encoded_password).hexdigest()
# BLAKE2
blake2_hash = hashlib.blake2b(encoded_password).hexdigest()
print(f"SHA-256: {sha256_hash}")
print(f"SHA-3: {sha3_hash}")
print(f"BLAKE2: {blake2_hash}")
# 출력 결과
SHA-256: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
SHA-3: d7190eb194ff9494625514b6d178c87f99c5973e28c398969d2233f2960a573e
BLAKE2: b3910b0f4b6f1aede44da90bb7705a868b265861b36e6f7f29dba7223f6f1ce7b10e0dd25e47deb70bd7f3b24f7da653409cd9014f8715e4013c15fee38ab418
hashlib 라이브러리에 대한 더 많은 상세한 내용이 궁금하시다면
아래에 첨부한 공식 문서를 참고해보세요.
hashlib — Secure hashes and message digests
Source code: Lib/hashlib.py This module implements a common interface to many different secure hash and message digest algorithms. Included are the FIPS secure hash algorithms SHA1, SHA224, SHA256,...
docs.python.org
실제로 해시 함수 활용이 필요한 경우, 보안 레벨이 비교적 높은 최신 알고리즘을
사용하는 것이 좋다는 점을 염두해주세요.
'Python > Utils' 카테고리의 다른 글
파이썬에서 종료 시에 특정 함수를 실행하는 방법(atexit 모듈) (2) | 2023.10.04 |
---|---|
파이썬 특정 시각에 코드를 실행하는 방법(schedule, threading 모듈 활용) (0) | 2023.09.18 |
파이썬 requests 비동기로 요청하기(aiohttp 및 asyncio 활용) (0) | 2023.09.16 |