Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: 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; }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: