인코딩(Encoding), 디코딩(Decoding), 해싱(Hashing)
👉 인코딩(Encoding)
- 데이터를 특정 형식이나 형태로 변환하는 과정
- 인코딩 방식의 예시로는 ASCII, ISO-8859, UTF 등이 있음(UTF-8이 대표적)
- 데이터를 전송, 저장 또는 압축하기 쉽게 만들기 위해 필요
- 데이터를 다른 형태로 바꾸지만, 원래의 데이터로 다시 복원할 수 있는 가능성을 남겨 둠
- 예시
- 텍스트 데이터를 컴퓨터가 이해할 수 있는 이진 형식으로 변환
- 비디오와 이미지를 디지털 형식으로 압축하는 것
👉 디코딩(Decoding)
- 인코드된 데이터를 원래의 형식이나 형태로 되돌리는 과정
- 인코딩된 데이터를 받아 원래 데이터로 변환하여 사용 가능하게 함
- 예시
- 이진 정보를 다시 사람이 이해할 수 있는 텍스트로 변환
- 압축된 비디오 파일을 재생 가능한 형태로 복원하는 것
👉 해싱(Hashing)
- 어떤 입력 값에 대해 고정된 크기의 고유한 값(해시)을 생성하는 과정
- 해시 함수는 보안, 데이터 검색 최적화, 무결성 확인 등 다양한 목적으로 사용
- 해시 함수의 예시로는 MD5, SHA 시리즈, BLAKE2 등이 있음(SHA-3가 대표적)
- 해싱의 주요 특징은 같은 입력 값에 대해서는 항상 같은 해시 값을 출력하지만 해시 값으로부터 원본 데이터를 복원하는 것은 불가능
- 예시
- 비밀번호 저장 시 해시를 사용하여 원본 비밀번호 대신 해시 값을 저장해 보한 강화