본문 바로가기
코딩 공부/CS

인코딩, 해싱, 암호에 대하여

by 현장 2023. 12. 25.

https://meongae.tistory.com/96

🏷️ Encoding(인코딩)

Data Encoding은 Scheme를 이용하여 데이터를 새로운 포맷으로 변경하는 것(Base64, ASCII Code 등)입니다. 현재의 포맷으로는 데이터 전송이 불가능할 경우 사용을 하게 되고 원래의 데이터로 복원(Decoding) 하는 것이 쉽기 때문에 암호화 목적으로 사용하지 않습니다. 주로 서로 다른 시스템 간 동일한 포맷으로 데이터를 주고받기 위해 사용합니다.

✔️ Base64

출처: 나무위키

🏷️ Hashing(해싱)

https://medium.com/@Karinnovation

Hashing은 입력값을 고정된 길이의 출력값으로 변경하는 것입니다. 해싱된 데이터는 원래의 데이터로 복원 불가(단방향 암호화)하고 보통 데이터 무결성 체크를 위해 사용합니다. 원본과 사본을 동일한 해시 알고리즘(ex. SHA256)으로 해싱했을 때 값이 같으면, 원본과 사본이 같다는 것이 증명이 됩니다.

🏷️ Encryption(암호화)

Encryption은 Key 또는 Password를 가지고 있는 경우에만 원본을 볼 수 있도록 데이터를 '안전하게' 인코딩(양방향 암호화) 한 것입니다. Encryption은 Symmetric Key(대칭키), Public Key(공개키) 방식이 있습니다. 

✅ Symmetric Key(대칭키) 방식

  • 암호화 속도가 빨라 대용량 데이터 암호화에 적합합니다.

Publick Key(공개키) 방식

  • 암호화, 복호화 키가 다릅니다.
  • 암호화 속도가 느리지만, 대칭키보다는 확장성이 좋습니다. (본인의 개인키만 관리하면 되니까.대칭키방식은 키를 공유핼 사람이 많아지만 키관리가 어려워짐)
  • 송신자 개인키로 암호화하고, 송신자 공개키로 복호화 : 부인 방지 목적(송신자만 개인키 갖고 있으니 그사람이 보낸 것이 확실)
  • 수신자 공개키로 암호화하고, 수신자 개인키로 복호화 : 기밀성 목적. 암호화 느려서 대칭키 암호화하여 전송할 경우에 사용함.

🏷️ 차이점

  인코딩 해싱 암호화
Key 사용 X X O
목적 데이터 무결성 보호 데이터 검증 데이터 보안
용도 메모리 절약 목적 압축 방식 또는 데이터 전송 시 많은 파일 등을 전송 시 민감한 정보 전송 시
원래 형식으로 전환 가능 X O O

📖 Reference

dainel

spot-the-difference

'코딩 공부 > CS' 카테고리의 다른 글

함수형 프로그래밍(Functional Programming)  (1) 2024.01.14
[CS] OAuth2.0  (1) 2023.12.27
[HTTP] HTTP 헤더 - 콘텐츠 협상 (Content Negotiation)  (0) 2023.11.10
CGI(Common Gateway Interface)  (0) 2023.05.18
[Network] TCP와 UDP  (0) 2023.05.18