Показать сообщение отдельно

  #28  
Старый 14.04.2008, 15:43
KSoniX
Познающий
Регистрация: 17.01.2008
Сообщений: 94
Провел на форуме:
314553

Репутация: 38
Отправить сообщение для KSoniX с помощью ICQ
По умолчанию

вот кусок года здес у меня ест 2 edit box в одном логин в другом пасс. я логин и пасс шифрую и записываю в файл но мой шифровальный алгоритм работает с char`ми и я с TCHAR в char конвертирую с помощью функции указанный чуть выше и я шифрую функций fmt_base64() ниже функция шифрования у меня все работает нормальна
Цитата:
//...................

CString logBuff,passBuff;
CEdit* Log;
CEdit* Pass;
char *buffer,buf,*userpass;

Log = (CEdit*)GetDlgItem(IDC_EDIT1);
Pass = (CEdit*)GetDlgItem(IDC_EDIT2);
Log->GetWindowTextW(logBuff);
Pass->GetWindowTextW(passBuff);


if(wcslen(logBuff)!=0)
{
logBuff+=':'+passBuff;
int len =logBuff.GetLength()+2;
buffer=(char*)malloc(len);
WideCharToMultiByte(CP_ACP,WC_NO_BEST_FIT_CHARS,lo gBuff,50,buffer,50,NULL,NULL);

//...................................
функция шифрование

Цитата:

unsigned int fmt_base64(char *dest, const char *src, unsigned int len)
{
unsigned short bits = 0,temp = 0;
unsigned long written = 0;
unsigned int i;
const char base64[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyz0123456789+/=";


for(i = 0; i < len; i++) {
temp <<= 8;
temp += src[i];
bits += 8;
while(bits > 6) {
dest[written] = base64[((temp >> (bits - 6)) & 63)];
written++;
bits -= 6;
}
}

if(bits) {
temp <<= (6 - bits);
dest[written] = base64[temp & 63];
written++;
}

while(written & 3) {
dest[written] = '=';
written++;
}

return written;
}

Последний раз редактировалось KSoniX; 17.04.2008 в 11:10..
 
Ответить с цитированием