해쉬와 솔트
해시(Hash)란?
- 데이터를 고정된 길이의 암호화된 문자열로 변환하는 함수.
- 비가역적(원본 복구 불가능).
솔트(Salt)란?
- 해시 전에 원본 데이터에 추가하는 임의의 문자열.
- 동일한 데이터라도 솔트가 다르면 해시 결과도 달라짐.
왜 필요한가?
- 해시만 사용 시: 동일 데이터의 해시값이 항상 같아 공격자가 쉽게 패턴 파악 가능.
- 솔트 추가 시: 무작위성이 생겨 해시 값 중복 방지 및 보안 강화.
적용 사례
- 비밀번호 저장: 원문 저장 대신 해시 + 솔트 값을 저장.
- 데이터 무결성 확인: 해시값으로 데이터 변경 여부 검증.
주의사항
- 솔트는 사용자마다 고유하게 생성.
- 충분히 긴 솔트와 안전한 해시 알고리즘 사용 (예: SHA-256).
결론
해시와 솔트를 함께 사용하면 데이터 유출 시에도 비밀번호 원문 유추를 어렵게 만들어 보안을 강화할 수 있다. 🌟