// password.cpp : ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡À» Á¤ÀÇÇÕ´Ï´Ù. // // VC++·Î Äָܼðµå¿¡¼­ ÄÄÆÄÀÏÇÒ¶§ »ç¿ë // #include "stdafx.h" #include #include #include #include #include #include #include using namespace std; class Cryptography { static const int MAXROW=3; static const int char_size= 128; typedef pair EncodeUnit; //int numrow,irow; double dtemp,pivot; double a[MAXROW][2*MAXROW]; double a_1[MAXROW][MAXROW]; double originalKey[MAXROW][MAXROW]; string original_Code; string password_Code; string password_Decode; vector EncodeUnitVec; void InverseMatrix() { int i,j,k; int irow=0; /*..pivot..*/ for(i=0;i Extract3charVec) { for(vector::iterator it=Extract3charVec.begin(); it != Extract3charVec.end(); ++it) { char* pcharUnit= new char[3]; int* pDivCount= new int[3]; cout<<"È®ÀÎ Extract3charVecÀÇ ¿ä¼Ò :"<<*it<::iterator it=Extract3charVec.begin(); it != Extract3charVec.end(); ++it) } void FreeEncodeUnit() { for(vector::iterator it=EncodeUnitVec.begin(); it !=EncodeUnitVec.end(); ++it) { delete [] it->first; delete [] it->second; } } void Encode() { int mod = original_Code.size()%MAXROW; if(mod != 0) original_Code.resize(original_Code.size()+MAXROW-mod,' '); vector Extract3charVec; // 3°³ ¹®ÀÚ ´ÜÀ§·Î ÃßÃâ for(int i=0; i < original_Code.size()/MAXROW; ++i) { char* pInputChar = new char[4]; memset(pInputChar,0,4); pInputChar[0] = *(original_Code.begin()+(i*MAXROW)+0); pInputChar[1] = *(original_Code.begin()+(i*MAXROW)+1); pInputChar[2] = *(original_Code.begin()+(i*MAXROW)+2); cout<<"ÀÔ·Â ¹ÞÀº ¹®ÀÚ °ª È®ÀÎ : "<<(int)pInputChar[0]<<" "<<(int)pInputChar[1]<<" "<<(int)pInputChar[2]< DecodeVec; for(vector::iterator it=EncodeUnitVec.begin(); it !=EncodeUnitVec.end(); ++it) { int* pDecodeUnit= new int[3]; pDecodeUnit[0] = ((it->second)[0]*char_size) + (it->first)[0]; pDecodeUnit[1] = ((it->second)[1]*char_size) + (it->first)[1]; pDecodeUnit[2] = ((it->second)[2]*char_size) + (it->first)[2]; cout<<"È®ÀÎ pDecodeUnit[0] : "<::iterator it=EncodeUnitVec.begin(); it !=EncodeUnitVec.end(); ++it) for(vector::iterator it=DecodeVec.begin(); it !=DecodeVec.end(); ++it) { double temp[MAXROW]; for(int i=0; i (temp[i])<::iterator it=EncodeUnitVec.begin(); it !=EncodeUnitVec.end(); ++it) for(vector::iterator it=DecodeVec.begin(); it != DecodeVec.end(); ++it) { delete [] *it; } // for(vector::iterator it=EncodeUnitVec.begin(); it !=EncodeUnitVec.end(); ++it) } public: Cryptography() { /*..Initialize..*/ for(int i=0;i>original_Code; cout<<"ÀÔ·ÂÇϽŠ¹®ÀÚ´Â : "<> select; if( select ==2 ) { cry.InputKeyArray(); cry.ShowKeyArray(); cry.ShowInverseArray(); } // if( select ==1 ) else if(select == 1) { cry.FixArray(); cry.ShowKeyArray(); cry.ShowInverseArray(); } else { cout<<"À߸ø ÀÔ·ÂÇϼ̽À´Ï´Ù"<