💡 도움이 되셨다면 ♡와 팔로우 부탁드립니다. 미리 감사드립니다.
톺아보기는 '샅샅이 더듬어 가면서 살피다'라는 뜻의 순우리말입니다.
hashlib
라이브러리 사용법💡 hashlib
은 Python에서 암호화 해시를 생성하는 데 사용되는 라이브러리로, 보안이 중요한 애플리케이션에서 데이터 무결성 검사나 비밀번호 암호화에 유용하게 쓰인다.
import hashlib
Python에서는 hashlib
을 사용하여 다양한 해시 알고리즘으로 해시 값을 생성할 수 있다.
text = "Hello, World!"
hash_object = hashlib.sha256(text.encode())
hash_hex = hash_object.hexdigest()
print(f"SHA-256 해시 값: {hash_hex}")
예제
# SHA-1 해시 생성하기
hash_object = hashlib.sha1(text.encode())
print(f"SHA-1 해시 값: {hash_object.hexdigest()}")
# MD5 해시 생성하기
hash_object = hashlib.md5(text.encode())
print(f"MD5 해시 값: {hash_object.hexdigest()}")
파일이나 데이터의 무결성을 검사할 때 해시 값을 활용할 수 있다. 원본 파일과 현재 파일의 해시 값을 비교하여 파일이 손상되었는지 확인할 수 있다.
# 파일 무결성 검사 함수
def file_checksum(file_path):
hash_object = hashlib.sha256()
with open(file_path, "rb") as f:
while chunk := f.read(4096):
hash_object.update(chunk)
return hash_object.hexdigest()
# 파일 검사 예제
original_hash = file_checksum("original_file.txt")
current_hash = file_checksum("downloaded_file.txt")
if original_hash == current_hash:
print("파일이 손상되지 않았습니다.")
else:
print("파일이 손상되었거나 변조되었습니다.")
해시 함수는 같은 데이터에 대해 항상 같은 해시 값을 생성하므로, 비밀번호를 저장할 때는 salt를 추가해 보안을 강화할 수 있다. Salt는 임의의 문자열을 비밀번호에 추가하여 해시 값을 변형하는 기법이다.
import os
# Salt와 SHA-256 해시 적용
password = "securepassword"
salt = os.urandom(16) # 임의의 16바이트 salt 생성
hash_object = hashlib.sha256(salt + password.encode())
password_hash = salt + hash_object.digest()
print(f"Salt + 해시된 비밀번호: {password_hash.hex()}")
hashlib
에서는 여러 해시 알고리즘을 지원하며, 사용 가능한 알고리즘 목록은 hashlib.algorithms_available
로 확인할 수 있다.
print(hashlib.algorithms_available) # 사용 가능한 해시 알고리즘 목록 출력
알고리즘 선택 예시
hash_object = hashlib.new("sha512") # SHA-512 해시 생성
hash_object.update(text.encode())
print(f"SHA-512 해시 값: {hash_object.hexdigest()}")
hashlib
은 데이터 보안을 강화하고 무결성을 유지하기 위해 Python에서 널리 사용되는 라이브러리이다. 다양한 해시 알고리즘과 Salt 기법을 통해 데이터를 안전하게 관리할 수 있으며, 파일 무결성 검사와 비밀번호 암호화 같은 작업에 활용할 수 있다. 보안이 필요한 애플리케이션 개발에서 hashlib
의 주요 기능들을 익혀두면 많은 도움이 된다.