Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: exp   (12.01.2010 в 22:19)
чего-то наваял :)
попробовал просто лишний байт 0x01 так и записывать 0x01
#include <windows.h>

char* ishs = "строка не закодирована";
char* key = "ключ строка"
char res[sizeof(&ishs)*2];

void x_encode(void ) {
char* cTmp = ishs;
char* cKey = key;
char* cRes = (char*) res;
for( ; *cTmp != '\0'; cTmp++, cKey++, cRes++) {
if (*cKey == '\0') cKey = key;
    if ((*cTmp + *cKey) & 0x100) *cRes++ = 0x01 ; 
*cRes = (*cTmp + *cKey) ;
}
*cRes++ = '\0';
}
void x_decode(void ){
char* cRes = res;
char* cTmp = res;
char* cKey = key;
short w;
for( ; *cTmp != '\0';  cKey++, *cTmp++, *cRes++){
if (*cKey == 0) cKey = key;
if (*cTmp == 0x01) { // при складывании двух ненулей столько не бывает
w = 0x100;
cTmp++;
w |= *cTmp;
} else  w = *cTmp;
*cRes =  (w - *cKey) ;
}
*cRes++ = '\0';
}
int main(void){
  x_encode( );
  MessageBox(0,  res, "x_encode",0);
  x_decode( );
  MessageBox(0,  res, "x_decode",0);
  return 0;
}
здесь как-бы всё просится в одну функцию , обычно так навтыкаю, потом оптимизирую

, и делал в MSVC 6 , если делаю в остальных MSVC , там приходится убирать _UNICODE которое они инхерят по умолчанию. А классы я как-то не очень пробовал всякие


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: