파이썬으로 문자열 SHA256로 암호화 하기
2019. 6. 25. 14:22ㆍ개발노트
파이썬에서 문자열을 SHA-256 해시 알고리즘으로 암호화하려면 hashlib 모듈을 사용할 수 있습니다. SHA-256은 입력 데이터에 대해 고유한 고정 길이의 해시 값을 생성하는 암호화 해시 함수입니다. 해시는 일방향 함수로, 원래 데이터를 해시 값으로부터 복원하는 것은 거의 불가능합니다.
SHA-256 해시 생성 방법
- hashlib 모듈을 임포트합니다.
- hashlib.sha256() 함수를 호출하여 SHA-256 해시 객체를 생성합니다.
- 해시 객체의 update() 메서드를 사용하여 해싱할 데이터를 제공합니다.
- hexdigest() 메서드를 호출하여 해시 값을 16진수 문자열로 반환합니다.
import hashlib
# 해싱할 문자열
input_string = "Hello, World!"
# 문자열을 바이트로 인코딩
encoded_string = input_string.encode()
# SHA-256 해시 객체 생성
sha256_hash = hashlib.sha256()
# 해싱할 데이터 제공
sha256_hash.update(encoded_string)
# 해시 값을 16진수 문자열로 반환
hash_result = sha256_hash.hexdigest()
print(f"Original String: {input_string}")
print(f"SHA-256 Hash: {hash_result}")
# 출력
Original String: Hello, World!
SHA-256 Hash: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b1d1e000f3c8a7ed4
참고 사항
- SHA-256은 해시 함수로, 암호화된 데이터를 복호화할 수 없습니다.
- 같은 입력에 대해 항상 동일한 해시 값을 생성하므로, 암호화된 데이터를 비교하는 데 사용할 수 있습니다.
- SHA-256은 보안 해시 알고리즘이므로 패스워드 저장 등의 보안 민감한 작업에 적합합니다. 하지만 실제로 패스워드를 저장할 때는 추가적인 안전 장치(예: 소금(salt), 키 유도 함수)를 사용하는 것이 좋습니다.