https://docs.microsoft.com/ko-kr/windows/win32/fileio/file-encryption
상기 링크를 읽어보세요.
임윤관 님이 쓰신 글 :
: 답변 감사합니다!
:
: WriteString을 사용하여 id,비밀번호를 ini에 보내놓고
:
: ReadString을 사용하여 id,비밀번호를 ini에서 불러왔는데..
:
: 말씀해주신건 WriteString을 사용하여 ini에 보낼때 암호화해서 보내고,
:
: 받을때 ReadString을 사용하여 ini에서 받을때 복호화를 한다는것이 현실적으로 어렵다는 말씀인가요?
:
: 암호화,복호화를 하고싶은데... 그러면 방법이 없을까요?
:
:
:
:
:
:
: //===============================================================================================
: 정영훈 님이 쓰신 글 :
: : 배보다 배꼽이 클 수 있습니다.
: :
: : 생각을 해보세요.
: : 암호화, 복호화 진행시 가장 단순한 대칭키를 사용한다고 해도 '키'를 전달해야 하는 문제가 발생합니다.
: :
: : 코딩이 문제가 아니라 키관리를 어떻해 할지부터 고민해야 합니다.
: :
: : 키를 프로그램 내부에 저장하고 있겠다...라는 생각이라면 안하는 것이 낫습니다.
: : //==============================================================================
: : 임윤관 님이 쓰신 글 :
: : : 안녕하세요. 업무일지 프로그램을 수정하고 있습니다.
: : :
: : : 처음에 로그인할때 id, 비밀번호를 입력한것을 "ID저장"이라는 체크박스를 눌렀을때 (CheckBox1->Checked==true사용)
: : :
: : : ini파일로 저장을하고, "ID저장"이라는 체크박스를 누르지 않았을때는 ( CheckBox1->Checked!=true사용)
: : :
: : : ini파일로 공백으로 id,비밀번호가 저장되서
: : : ("Settings", "Id", FrmLogin->editId->Text), ("Settings", "Pw", FrmLogin->editPassword->Text) 사용
: : :
: : : 이후 로그인할때 체크박스를 누르면 그 전에 체크박스를 누른체로 로그인 했을경우
: : : 그때 로그인한 ID,비밀번호가 불러와집니다.
: : :
: : : 생각을해보니 체크박스를 눌러서 id,비밀번호가 저장이 되면 ini파일을 열었을때 id,비밀번호가 고스란히 노출이 되는 문제가 있습니다.
: : : 처음 Writestring으로 보낼때 암호화해서 ini보내지고 Readstring 했을때 복호화해서 로그인정보를 불러올수 있을까요?...
: : :
: : : 인터넷에서 검색해서 여러가지 예제를 대입해봤는데 되지가 않네요 ㅠㅠ
: : : 아래는 Readstring, Writestring을 사용한 소스 일부입니다.
: : :
: : :
: : :
: : : //==========================================================================
: : : if(CheckBox1->Checked)
: : : {
: : : ini->WriteString("Settings", "Id", FrmLogin->editId->Text); //////
: : : ini->WriteString("Settings", "Pw", FrmLogin->editPassword->Text);
: : : }
: : : //==========================================================================
: : : if(CheckBox1->Checked==true)
: : : {
: : : FrmLogin->editId->Text = ini->ReadString("Settings", "Id", FrmLogin->editId->Text);
: : : FrmLogin->editPassword->Text = ini->ReadString("Settings", "Pw", FrmLogin->editPassword->Text);
: : : }
: : : //==========================================================================
: : : if(CheckBox1->Checked!=true)
: : : {
: : : String path = ExtractFilePath( Application->ExeName )+"Ipinfo.ini"; //2020
: : : TIniFile *ini = new TIniFile( path );
: : : ini->WriteString("Settings", "Id", "");
: : : ini->WriteString("Settings", "Pw", "");
: : : }
: : : //==========================================================================
: : : FrmLogin->editId->Text = ini->ReadString("Settings", "Id", FrmLogin->editId->Text);
: : : FrmLogin->editPassword->Text = ini->ReadString("Settings", "Pw", FrmLogin->editPassword->Text);
: : :
: : : //==========================================================================