포트폴리오 만들기

8.구조 바꿈/ Sha256 다운받아서 프로젝트에 적용.

Roka_is_back 2023. 12. 21.

1. 구조 바꿈

바뀌기전 구조

바뀌기 전 구조는 dll에서 받아온 기능을 랩핑한 class 느낌으로 구조를 짰다.

바뀐 뒤 구조

바뀐 후 구조는 Engine 과 Lib에서 포인터를 받아서 해당 pointer를 통해 접근하게 했다.

이렇게 함으로써 좀 더 깔끔하고 보호 수준을 높이려는 의도와 맞는 것 같았다.

 

주의점

여기서 주의할 점이 있다.

RokaStl_Lib.lib
engine.dll

RokaProj에서 생성된 LM_DLL과 dll 에서 생성된 LM_DLL 은 별개로 취급된다.

추측하기로는 공유 메모리가 아니기 때문인 것 같다.

main proj에서 lib를 통해 생성한 메모리는 .exe 쪽 메모리에 잡히고
dll 내부에서 lib를 통해 생성한 메모리는 dll 쪽 메모리에 잡히기 때문에 별개로 취급된다고 추측한다.

https://www.youtube.com/watch?v=JK6U91t7mgY
https://modoocode.com/321#page-heading-6

2.Openssl SHA256 적용 및 테스트

다운로드

http://p-nand-q.com/programming/windows/building_openssl_with_visual_studio_2013.html

 

Building OpenSSL with Visual Studio

Building OpenSSL with Visual Studio New: Now supports both the 1.1.0x, 1.0.1x and 1.0.2x branches Now supports Visual Studio 2010, 2013 and 2015 Now supports both static and dynamic libraries Downloads I provide downloads for Visual Studio 2010 and 2015. I

p-nand-q.com

설정

1. RokaSTL_Lib.lib에 링크를 해놨다.

RokaSTL_Lib.lib

 

2.RokaProj에서 호출을 하려면 dll 을 연결해놔야 하므로 아래와 같이 한다.

-(1) 기본적으로 .h 와 lib를 참조하기 위해 기존에 lib,dll 경로를 설정한것처럼 설정해준다. 

-(2)디버깅-환경에서 다음과 같이 패스를 입력한다.

       path=경로;%PATH%

(2)

설정 참고 사이트

https://cypsw.tistory.com/entry/C-openSSL-%EC%82%AC%EC%9A%A9%EB%B2%95

 

[C++] openSSL Hash 사용법

근본적으로 openssl 은 C++ 기반이 아닌 'C' 언어 기반임을 유의하고 보길 바란다. 다만 해당 포스팅은 Visual Studio 2013 에서 C++ Project 로 만들었다. 우선 해당 포스팅에서 빌드방법은 생략한다. 귀찮거

cypsw.tistory.com

 

테스트 코드

Openssl_shaMain.cpp = Test code

 

실행 결과

확인해보기

https://coding.tools/sha256

 

SHA256 Hash Generator Online Tool - Coding.Tools

This online SHA256 Hash Generator tool helps you to encrypt one input string into a fixed 256 bits SHA256 String.

coding.tools

3. 맵의 종류를 정확히 구분하자. 

내가 만든 map으로 해시 값들을 관리하며 검색하려 했다.

이 맵은 odered map 이다.

 

ordered_map : 값을 비교하며 삽입,삭제,검색을 수행해야 할 경우 vector 보다 빠르다. (시간 복잡도 : logn)
unordered_map : 값을 비교 X 순수하게 빠르게 검색하려고 할때 사용. hash 기반으로 검색해서 빠르다.(시간 복잡도 : O(1))

 

unordered_map 은 GetHesh 를 재정의 해서 써줘야 하는데 공식은 내가 알아서 고유하게 해서 size_t가 나오게 해야한다.

 

sha로 해시떠서 비교하는건 용도가 맞지 않았던거 같다.
내가 만든 map을 string 특수화를 시켜주던가

아니면 unordered_map으로 gethesh 함수를 재정의해서 찾도록 하는게 좋을 듯 하다.

댓글