개발/C 2

[C언어] 해시 알고리즘 / OpenSSL/ SHA256 사용

OpenSSL OpenSSL은 네트워크를 통한 데이터 통신에 쓰는 프로토콜인 TLS와 SSL의 오픈 소스 구현판이다. C언어로 작성되어 있는 중심 라이브러리 안에는, 기본적인 암호화 기능 및 여러 유틸리티 함수들이 구현되어 있다. OpenSSL 라이브러리 안의 SHA-256 알고리즘을 사용해 보고자 한다. 윈도우 환경에서 사용할 수 있도록 미리 컴파일 해놓은 사이트 https://www.npcglib.org/~stathis/blog/precompiled-openssl/ 위 사이트에서 필요한 것을 다운로드 받는다. include 안의 헤더파일과 lib폴더안의 라이브러리가 필요합니다. 속성의 C/C++ -> 일반 -> 추가 경로에서 openssl 폴더가 위치한 경로 추가 링커 -> 일반 -> 추가 라이브러리..

개발/C 2018.10.14

해시(Hash) 알고리즘 / SHA256

해시(Hash) 1. 해시(고기와 감자를 잘게 다져 섞어 요리하여 따뜻하게 차려 낸 것) - 출처 (네이버 사전) 해시 함수는 임의의 길이의 입력 메세지를 고정된 길이의 출력값으로 압축시키는 함수이다. 우리가 아는 해쉬포테이토처럼 잘게 다져서 다시 뭉쳐서 압축시키는 것이다. 해시는 무결성을 보장할 수 있다는 점에서 다양한 개발 분야에서의 활용도가 높다. 해시 함수 종류로는 대표적으로 MD5, SHA 시리즈 등이 존재한다. 이러한 함수들은 국제적으로 공용으로 사용되기 때문에 같은 값을 넣으면 언제나 같은 해시값이 도출된다. 예를들어, 두개의 파일에서 SHA-256이라는 해시 알고리즘을 사용해 나온 결과가 동일하다면, 그 두 개의 파일은 정확히 동일한 파일이라 할 수 있다. 해시의 특징은 어떤 값을 넣어도 ..

개발/C 2018.10.09