работа с Base64, UTF8, байтами
От: paxerus  
Дата: 03.09.09 10:30
Оценка:
Добрый день

Суть вопроса такова что у меня есть строка русских смиволов в формате UTF8

мне необходимо зашифровать ее методом XOR и далее перегнать в base64
в принципи все понятно и как шифровать и даже функция перегона в base 64 есть


std::string  CRequest::EncodeMessage(std::wstring& wStr,std::string key)
{
    std::string cipher;
    int      i,k;

    for(i=0;i<wStr.length();i++)
    {   k=(i) % key.length();
        
    cipher.push_back(char((unsigned int)cipher.at(k)^(unsigned int)key.at(k)));
    
    }
        cipher=base64_encoded(cipher);
    return cipher;
}


проблема в следующем
когда встречается символ в один байт, то по сути у нас есть старший байт нулевой и младший совпадает с кодом аски.
если больше одного байта (русские символы) то мне необходимо разбивать их , это я вроде разобрался как делать


__int16 a=(__int16)wStr.at(i) ;
BYTE ff=((char*)(&a))[0];
BYTE ff1=((char*)(&a))[1];



непонятн как потом при дешифрации собрать 2 байта которые кодируют один символ
base64 utf8 байты
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.