Я работал над базовым алгоритмом шифрования / дешифрования строк в C ++ (источник здесь: http://pastebin.com/MLnn8D82)
Проблема в том, что она не расшифровывается должным образом. Уравнение шифрования:
strInput[nPos]=(((strInput[nPos])+(nPos+1))*2);
И уравнение расшифровки:
strPassword[nPos]=(((strPassword[nPos])-(nPos+1))/2);
Когда я пробую это только с помощью операторов сложения / вычитания, это работает отлично. Но когда я умножаюсь в шифровании и делю в дешифровании, я получаю, казалось бы, случайную строку.
Сначала я подумал, что это может быть из-за того, что пароль записывается и извлекается из файла перед расшифровкой, но я попытался вывести его напрямую из основной функции, и в результате я получил те же результаты.
Есть ли проблема с делением / умножением строк? Раньше он работал со строками в стиле C (массив символов), но я думаю, что это может быть иначе.
Любая помощь приветствуется!
Редактировать: Спасибо за ответы до сих пор. Я знаю, что это небезопасно, и что я не должен его использовать; Я делаю это только для практики.
Кроме того, это не проблема памяти. Я попытался разделить на этапе шифрования, а не умножения, но я все еще получаю случайную строку, а не исходную строку.