데이터베이스(DB) 암호화는 중요한 정보를 외부에서 읽을 수 없도록 보호하는 기술입니다.
예를 들어, 비밀번호나 개인정보를 그대로 저장하면 해킹 시 바로 노출될 수 있기 때문에, 이를 알아볼 수 없는 형태로 바꿔 저장하는 것이 암호화입니다.
SHA-256은 데이터를 암호화하는 방법 중 하나로,입력값을 항상 일정한 길이의 암호 값(256비트)으로 변환합니다.
1. 결과의 일관성 (결정성)
입력이 같으면 출력도 항상 같습니다. 예외나 오차 없이 일정한 값을 보장합니다.
2. 출력의 규격화 (고정된 크기)
입력 데이터의 양에 상관없이 출력값은 언제나 256비트(64글자)로 고정됩니다.
데이터 관리와 비교가 효율적입니다.
3. 역추적 불가능 (단방향성)
결과값(해시)을 가지고 원래의 입력값을 찾아낼 수 없습니다.
정보의 '확인'은 가능하지만 '복구'는 안 되는 구조입니다.
4. 미세 변경 감지 (눈사태 효과)
데이터가 아주 조금만 바뀌어도 결과값이 완전히 달라집니다.
이를 통해 데이터가 중간에 위변조되었는지를 즉각 알 수 있습니다.
5. 중복 생성 불가 (충돌 저항성)
서로 다른 데이터가 우연히 같은 해시값을 가질 확률이 극히 희박합니다.
각 데이터에 고유한 식별 번호를 부여하는 것과 같습니다.
pgcrypto는 PostgreSQL에서 제공하는 암호화 기능을 사용할 수 있게 해주는 확장 기능입니다.
즉, DB 안에서 직접 암호화/복호화를 할 수 있게 도와줍니다.
1. DB 안에서 즉시 암호화
데이터를 외부 프로그램으로 보낼 필요 없이, DB 안에서 SQL 명령어 한 줄로 암호화와 복호화를 바로 처리합니다.
2. 비밀번호 보안 (Hash)
사용자의 비밀번호를 저장할 때 활용되는 방식입니다. 원본 비밀번호를 직접 저장하지 않고, 복구할 수 없는 형태로 변환(해시)하여 보관합니다. 이렇게 하면 데이터가 유출되더라도 실제 비밀번호를 알아내기 어렵습니다. 또한 사용자가 로그인할 때 입력한 비밀번호를 동일한 방식으로 해시 처리한 뒤, 저장된 값과 비교하여 일치 여부를 확인합니다.
3. 데이터 잠금 (Encryption)
개인정보처럼 나중에 다시 읽어야 하는 데이터를 암호로 잠급니다. '키(Key)'를 가진 사람만 원본 내용을 볼 수 있습니다.
4. 무작위 섞기 (Salting)
같은 비밀번호라도 저장될 때에는 서로 다른 값으로 보이게 만듭니다. 이를 통해 해커가 미리 계산해둔 해시 값(예: 레인보우 테이블)을 이용해 비밀번호를 추측하는 공격을 효과적으로 방지할 수 있습니다.
5. 선택적 암호화
테이블 전체가 아니라, '이름'이나 '전화번호' 같은 특정 항목(컬럼)만 골라서 암호화할 수 있어 효율적입니다.
AI 프로는 SHA-256과 pgcrypto 기반 암호화를 통해 데이터를 안전하게 보호합니다.
안심하고 사용하세요.