Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 02:02   #1
SOUR47
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 10
Стрелка Алгоритм XOR

есть массив буков - "abcdefg hrlmnOprst"
есть ключ - "O"

При совпадении ключа и буквы шифрование останавливается, как с этим справится?

p.s. функция кодирования/декодирования
Код:
void code(char* lpName, char* lpPassword, char* lpResult)
{
    unsigned __int64 a, b;
    a = 0;
    while (lpName[a])
    {
        b = 0;
        while (lpPassword[b]) 
        {
            lpResult[a] ^= (lpPassword[b] + (a*b)); 
            b++; 
        }
        a++; 
    }
SOUR47 вне форума Ответить с цитированием
Старый 13.06.2011, 02:17   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Попроверял, вроде все нормально, шифрует до конца. Дайте остальной код, может там что не так
Updated
Немного изменил вид функции, теперь тоже стопорится. Будем искать)
Updated
Все понятно. Он шифрует до конца, просто при шифровке на месте буквы, совпадающей с единственной буквой ключа, получился ноль, а функции вывода думают что это конец строки.
В вашем случае придется вместе со строкой-шифром посылать еще и количество символов в ней)
Форматируйте код, будьте людьми.

Последний раз редактировалось Granus; 13.06.2011 в 02:32.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 13:32   #3
SOUR47
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 10
По умолчанию

фак е, теперь я могу шифроваться от своей младшей сестры :D
еще раз спасио!)

Возникла еще одна проблема.

Все, что я шифрую я помещаю в .Dat файл и закрываю программу, при открытии вызываю дешифровщик и стримами считываю

Код:
char* encrypt_name_file = "encrypt.dat";
ifstream outfile(encrypt_name_file);
		while(outfile)
		{
			outfile.get(ch);
			bufer[counter]=ch;
			counter++;
			cout<<ch;
		}
Проблема в том, что он не до окнца все считывает.
Из ~600 символов может 12 прочесть и все.

В чем трабл?

Последний раз редактировалось Stilet; 14.06.2011 в 09:25.
SOUR47 вне форума Ответить с цитированием
Старый 13.06.2011, 19:41   #4
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Попробуйте их выводить не как char'ы а как int
Код:
cout << (int)ch;
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 19:49   #5
SOUR47
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Попробуйте их выводить не как char'ы а как int
Код:
cout << (int)ch;
Результат тот же, не считая ASCII символов... не все считывает (
SOUR47 вне форума Ответить с цитированием
Старый 13.06.2011, 19:52   #6
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

А Вы уверены, что эти 600 символов в файл записаны?)
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 20:03   #7
SOUR47
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
А Вы уверены, что эти 600 символов в файл записаны?)
Абсолютно, для пущей уверености, зашифровал ~2500 символов, файл .dat по размеру = файлу где исходный текст, да и на глаз видно.

При выводе, счетчик выводит всего 112
SOUR47 вне форума Ответить с цитированием
Старый 13.06.2011, 20:05   #8
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

В программе-шифровщике при записи выводите записываемое на экран и посмотрите, что там)
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.06.2011, 20:12   #9
SOUR47
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
В программе-шифровщике при записи выводите записываемое на экран и посмотрите, что там)
При шифровке , вывод включен и они все показываются, а в конце записываются )))

вот такая шайтан машина
SOUR47 вне форума Ответить с цитированием
Старый 13.06.2011, 20:17   #10
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Черт возьми) Скиньте тогда зашифрованный файл, попробую сам посмотреть.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрoс по XOR whystr Общие вопросы Delphi 1 08.01.2011 18:05
XOR шифрование. 0479 Помощь студентам 4 14.09.2010 16:24
Ох уж эти OR, AND, XOR! NSV Свободное общение 6 27.03.2010 10:38
алгоритм XOR ravmad Общие вопросы C/C++ 2 29.05.2009 21:21