Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XOR шифрование 
:(
    Опции темы
Zdvig
Дата 21.10.2005, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 3.5.2005

Репутация: 1
Всего: 1



Пытаюсь перевести код из делфи, но что-то не получается. Может кто подскажет? Буду очень благодарен!

Код

function txxor(text:string):string;
var key,longkey : String;
i: Integer;
toto: char;
begin
    for i := 0 to (length(text) div length(key)) do
      longkey := longkey + key;
        for i := 1 to length(text) do begin
          toto := chr((ord(text[i]) XOR ord(longkey[i])));
          result := result + toto;
        end;
end;


--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
Exception
Дата 22.10.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



сишарп знаю средне, чёто вроде этого:
Код

string txxor(string text) {
int i,j;
string key,longkey;
char toto;
for(i=0;i<=(text.Length \ key.Length);i++){
longkey += key
for (j=0;j<=text.Length;j++){
//плохо знаю ф-ции работы с аскии кодами символов в с# - сам глянь в обжект браузере
}
}
}

PM   Вверх
mr.DUDA
Дата 22.10.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Код
using System;

namespace ConsoleApplication1
{
    class Class1
    {
        public static string txxor(string text)
        {
            string key="123", longkey="";
            for(int i=0; i<(1+text.Length/key.Length); i++)
                longkey += key;
            string result = "";
            for(int i=0; i<text.Length; i++)
                result += (char)(text[i] ^ longkey[i]);
            return result;
        }

        [STAThread]
        static void Main(string[] args)
        {
            string str = "Bla-bla-bla";
            string xored_str = txxor(str);
            string unxored_str = txxor(xored_str);

            Console.WriteLine("Зашифрованная строка: " + xored_str);
            Console.WriteLine("Расшифрованная строка: " + unxored_str);
        }
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
Zdvig
Дата 22.10.2005, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 3.5.2005

Репутация: 1
Всего: 1



Спасибо! Работает. Но не шифрует большие объемы текста, обрезает уже на второй, третьей строчке. И с кодировкой явные проблемы, примерно то же, о чем я писал в теме Hash функции. Подозреваю, что дело в библиотеках C#
--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
mr.DUDA
Дата 23.10.2005, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Не нравится строковое представление двоичных данных ? Можно разбить каждый байт результата на 2 тетрады, и добавить 32 - всё будет в пределах стандартной таблицы ASCII. Большие объёмы string-у по барабану. Проверяй свой код, ищи ошибку у себя.


--------------------
user posted image
PM MAIL WWW   Вверх
Zdvig
Дата 23.10.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 3.5.2005

Репутация: 1
Всего: 1



Цитата(mr @ 23.10.2005, 12:59)
Проверяй свой код, ищи ошибку у себя.

Код перенес "как есть" написанный тобой. Со стрингами понтяно.

Это сообщение отредактировал(а) Zdvig - 23.10.2005, 13:37
--------------------
Лампочка - ожерелье голых поп. Вся любовь - оп-хоп-хоп!
PM MAIL   Вверх
mr.DUDA
Дата 23.10.2005, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Zdvig @ 23.10.2005, 13:36)
Код перенес "как есть" написанный тобой.

Видимо, дело в том что при XOR-е может получиться символ с кодом 0 - такой символ означает конец строки. Ноль может выйти, если в исходной строке встретился символ, равный символу из ключа.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.