ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Crypto Tool] 1
    Toy Project/Crypto Tool 2021. 1. 20. 21:54

    CryptoTool.zip
    0.01MB

    Windows API를 이용해서 아래와 같은 프로그램 틀을 만들었다.

    CryptoTool.exe

     

    실행하면 다음과 같은 윈도우가 나타난다.

    CryptoTool 실행화면

    [Crypto tool] 0에서 소개한 것처럼 두 가지 기능을 구현하였다. 윗부분은 암호화를 원하는 파일을 읽어 들여서 key 값을 입력받은 후, Encrypt/Decrypt 버튼을 누르면 암호화를 진행하도록 각종 컨트롤들을 구현하였다. Algorithm은 콤보박스를 이용하여 원하는 암호화 알고리즘을 선택할 수 있도록 만들었다.

     

    알고리즘 콤보박스

     

    간단하게 암호화 및 암호화 해시 기능 이용방법을 소개해보면 다음과 같다.

     

    1. 암호화 기능

    (1) 파일 열기

    우선 Browse 버튼을 누르면 다음과 같이 파일열기 대화 상자가 나타나도록 구현하였다.

    Browse 버튼 클릭

    파일을 선택하면 "Filename: "오른쪽에 있는 에디트에 open 한 파일의 절대 경로가 나타난다. 시범 삼아 3.PNG라는 파일을 열어보겠다.

     

    파일 선택

    위와 같이 파일을 선택했다는 MessageBox도 출력하도록 하였다.

     

    (2) 에러 처리

    파일을 선택한 후에 암호화를 하기 위해서는 key와 알고리즘 또한 선택해야 한다. Encrypt/Decrypt 버튼을 눌렀을 때, Filename, Key, Algorithm을 체크한 후, 하나라도 누락된 것이 있는지 확인한다. 만약 그런 부분이 있다면 다음과 같이 경고 메시지를 출력한다.

    경고 message box

    위 예는 Filename을 입력하고 Key를 누락하여 Encrypt 버튼을 눌렀지만 경고 메시지가 나온다.

     

    (3) 백업 생성

    해당 파일을 암호화 했을 때, 원본을 암호화할 것인지 (덮어쓰기), 아니면 새로운 암호화된 파일을 만들 것인지 선택한다. 해당 기능은 Preserve Original File이라는 checkbox를 통해 구현하였으며, 체크가 되어 있지 않으면 원본 파일이 변한다는 경고 메시지를 출력해준다.

     

    체크 박스 체크해제시 경고 message box

     

    2. 암호화 해시 기능

    암호화 해시 기능은 웹상에서 사용자가 비밀번호를 입력하면 암호화하는 경우를 생각해서 입력한 문자열에 대한 해시값을 Output Hash 오른쪽의 에디트에 출력하는 기능을 한다. 암호화 기능과 마찬가지로 문자열, 알고리즘이 선택되어야 하며, 비어있을 때 Hash 버튼을 눌렀을 경우 에러 문구를 출력한다.

    Hash 알고리즘만 선택한 경우

     

    3. Comment

    위와 같이 Windows API를 이용해서 간단한 프로그램 틀을 작성해봤다. 다음 게시글에서는 간단한 사용자 정의 암호화 알고리즘 & 암호화 해시 알고리즘을 구현한 후, 실제로 Encrypt/Decrypt와 Hash를 수행했을 때 결과가 나타나는 내부 계산을 코드로 구현해볼 예정이다.

    반응형

    'Toy Project > Crypto Tool' 카테고리의 다른 글

    [Crypto Tool] 0  (0) 2021.01.20

    댓글

Designed by Tistory.