Карта сайта

Это автоматически сохраненная страница от 15.06.2013. Оригинал был здесь: http://2ch.hk/b/res/49909320.html
Сайт a2ch.ru не связан с авторами и содержимым страницы
жалоба / abuse: admin@a2ch.ru

Вск 16 Июн 2013 00:56:50
ВНИМАНИЕ АНОН
Смотри какое дело анон.
У меня есть фейк в фейсбуке, с которого я общаюсь с разными людьми со всего мира для своего хобби.
Просто с симпатичной девушкой охотнее идут на контакт и делают скидки.
В общем я обзавёлся несколькими друзьями по интересам и обменивался с ними сабжами для своего хобби.
Было охуенно, можно задавать любые тупые вопросы не стестняясь, получать профиты и скидки просто за факт что ты няша.
Придумал легенду для себя и посылки принимал на имя сестры (типо это моя кузина из рашки у которой я временно живу).
Всё было норм и яйца особо никто не подкатывал, просто были вежливы и любезны.
Но тут я нашёл одного нигру из африки, который торгует нужными сабжами для моего хобби.
Я кончено заказал у него, но нигра оказался дико напористый и начал по хардкору меня обрабатывать.
Я старался не отвечать на его подкатывания но и не рубил сразу, он распалился от этого и уже любит меня пиздец как.
Каждый день пишет стены признаний и планов на будущее.
Уже намылился делать визу и просит сделать вызов, но говорит что и без этого прилетит в рашку ко мне (я давал ему адрес сестры для посылки, не думал что все так будет).
Нигра чёткий и напористый, хоть и в африке но крутится и деньги имеет.
Кароче всё далеко зашло и мне нужен годный совет, как правильно слить нигру чтобы он не прилетал, иначе придется самому давать ему в очко лол.
Даже если я выпилю фейк это не выход.


Вск 16 Июн 2013 00:59:38
>>49909320
Скажи что у тебя есть Ванька Ерохин, очевидно же.

Вск 16 Июн 2013 01:00:01
>>49909460
да он прилетит блядь же и сестре дверь выносить будет.
он поехал уже по мне.

Вск 16 Июн 2013 01:03:21
>>49909551
Фото на фейке чьё? Сестры? Можешь признаться, что ты парень.

Вск 16 Июн 2013 01:04:18
>>49909657

Нет, фото няши из детдом тредов.

Вск 16 Июн 2013 01:06:33
>>49909320
Он твой личный сорт Властелина.

Вск 16 Июн 2013 01:08:52
>>49909320
Разрабатывай пукан, я уже вылетел.

Вск 16 Июн 2013 01:10:27
>>49909787

не скажу, мало отношения к сабжу имеет и деанон

Вск 16 Июн 2013 01:13:14
>>49909551
Просто говоришь, что ты НИТАКАЯ, если ты понимаешь, о чем я.

Вск 16 Июн 2013 01:16:34
>>49910225

я так и делаю до сих пор, но это хуёво работает и только даёт немного времени.

Вск 16 Июн 2013 01:17:43
>>49910225

лол, только щас пик посмотрел.
да хуй знает, не сработает же.

Вск 16 Июн 2013 01:18:40
>>49910070
>деанон
Настолько уникальное? Всё равно же из-под фейка сидишь.

Вск 16 Июн 2013 01:18:41
Ну забань его на фейсбушечке, делов то. С чего ты взял, что он на самом деле прилетит к ебанутой русской шлюхе?

Вск 16 Июн 2013 01:18:53
Создай фейк хача, и сделай его своим парнем или мужем. Нигре с мужского акка культурно и без оскорблений поясни что бы он не приезжал, т.к. его тут никто ни ждет.

Вск 16 Июн 2013 01:20:00
>>49910541

да, уникально пиздец особенно в рашке.
1 на сосаке такой.

Вск 16 Июн 2013 01:20:44
>>49910542

у нас есть общие знакомые в фейсбуке которые тоже знают мой адрес для посылок.
в общем его так легко не отделаешь.

Вск 16 Июн 2013 01:20:59
>>49909320
Признайся ему, что ты мальчик, давал ему левый адрес шлюхи и любишь мальчиков. У него пукан бомбанет на пару дней и все.

Вск 16 Июн 2013 01:22:18
>>49910676

лол он приедет и убьёт меня нахуй.
к тому же все остальные тоже узнают правду и я потеряю дохуя друзей по интересам.

Вск 16 Июн 2013 01:22:30
>>49910655
Вали в Тюмень.

Вск 16 Июн 2013 01:24:35
Пишу в рандомный тред.
Четное- иду играть
Нечетное- спать.

Вск 16 Июн 2013 01:24:35
КОЛЯ ФЕРРОЛИТА
Проиграл с ОПа-хуя
Говори что за хобби или засагаю твой тред.
Ты меня знаешь.

Вск 16 Июн 2013 01:25:21
>>49910863
Ну ладно.
Спокойной ночи, анон.

Вск 16 Июн 2013 01:26:03
>>49910745
Какой лвл?
Ну ты представь. Приехал этот нигер к вам, стоит под окном. У тебя на аве фотка чья? Не сестры же? Ну он постоит там, не найдет свою возлюбленную по адресу, ты сделаешь удивленную рожу и вид, будто не шпаришь на инглише, ну ему и не останется ничего, как съебать к хуям обратно к своим бегемотам.

Вск 16 Июн 2013 01:26:35
>>49910655
Почему? Я к одной красавице так настойчиво пейсал, она меня в одноклассниках просто забанила и всё.

Вск 16 Июн 2013 01:26:55
>>49910910
Сладких снов, няша

Вск 16 Июн 2013 01:28:05
КОЛЯ ФЕРРОЛИТА
ОП-хуй, ну чё, будешь колоться или я врубаю сажемёт?

Вск 16 Июн 2013 01:29:56

Вск 16 Июн 2013 01:30:17
КОЛЯ ФЕРРОЛИТА
жидкую высираю какашечку Абу
коричневую пукаю мочи анона
твёрдую какаю гавёшинку Педалика
жидкую выкакиваю мочи Капитана Очевидность
коричневую какаю какашечку тролля
коричневую пукаю гавёшинку школьника
жидкую какаю гавёшину говноеда
коричневую высираю какашунцию Петросяна
упругую какаю поднос Петросяна
твёрдую пукаю гавёшинку нуба
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:27:31 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:30:29
КОЛЯ ФЕРРОЛИТА
вязкую испражняюсь гавёшину Абу
вязкую высираю мочи петуха
коричневую какаю гавёшину хохла
твёрдую выкакиваю гавёшинку хохла
коричневую высираю мочи нуба
твёрдую вываливаю дерьмеца тролля
упругую выкакиваю гавняшену ОПа-хуя
вязкую высираю гавёшину тролля
твёрдую пукаю поднос Педалика
упругую пукаю мочи Педалика
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:27:36 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:30:39
КОЛЯ ФЕРРОЛИТА
жидкую пукаю дерьмеца Педалика
коричневую пукаю мочи тролля
упругую вываливаю поднос Петросяна
коричневую высираю какашунцию хохла
твёрдую пукаю гавняшену Капитана Очевидность
твёрдую какаю гавняшену Петросяна
упругую испражняюсь гавёшину Капитана Очевидность
упругую высираю поднос Капитана Очевидность
твёрдую вываливаю гавняшену Абу
твёрдую высираю какашечку говноеда
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:27:47 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:30:50
КОЛЯ ФЕРРОЛИТА
твёрдую какаю какашечку Абу
коричневую испражняюсь поднос Номада
вязкую вываливаю гавёшину школьника
жидкую вываливаю какашунцию хохла
вязкую пукаю мочи Номада
вязкую какаю подсос хохла
жидкую какаю мочи тролля
твёрдую вываливаю гавёшину тролля
жидкую пукаю гавёшинку Педалика
твёрдую какаю поднос ОПа-хуя
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:27:58 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:30:56
>>49911175
Поделись вайпалкой.

Вск 16 Июн 2013 01:31:01
КОЛЯ ФЕРРОЛИТА
вязкую выкакиваю поднос говноеда
вязкую какаю гавняшену хохла
вязкую вываливаю дерьмеца Педалика
вязкую какаю мочи школьника
твёрдую какаю гавёшинку нуба
жидкую выкакиваю дерьмеца нуба
коричневую выкакиваю гавняшену тролля
упругую пукаю какашечку Номада
вязкую пукаю дерьмеца Пистона
вязкую выкакиваю дерьмеца нуба
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:28:09 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:31:12
КОЛЯ ФЕРРОЛИТА
жидкую пукаю поднос петуха
жидкую испражняюсь поднос говноеда
вязкую высираю гавёшину хохла
упругую высираю мочи братишку
упругую испражняюсь поднос братишку
вязкую вываливаю подсос братишку
твёрдую выкакиваю гавёшинку анона
упругую вываливаю подсос ОПа-хуя
твёрдую пукаю гавёшину говноеда
коричневую какаю подсос Абу
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:28:19 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:31:24
КОЛЯ ФЕРРОЛИТА
вязкую пукаю гавёшину Педалика
жидкую выкакиваю дерьмеца тролля
жидкую выкакиваю гавёшинку братишку
вязкую высираю какашунцию Капитана Очевидность
твёрдую вываливаю гавёшину анона
вязкую вываливаю мочи Педалика
коричневую вываливаю какашунцию нуба
твёрдую вываливаю подсос тролля
упругую вываливаю подсос братишку
твёрдую пукаю поднос Петросяна
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:28:33 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:31:40
КОЛЯ ФЕРРОЛИТА
коричневую выкакиваю подсос хохла
упругую испражняюсь дерьмеца Капитана Очевидность
коричневую выкакиваю гавняшену Капитана Очевидность
твёрдую пукаю дерьмеца Петросяна
коричневую высираю гавёшину ОПа-хуя
жидкую вываливаю гавёшину Педалика
вязкую какаю дерьмеца Абу
упругую высираю гавёшину братишку
коричневую выкакиваю гавёшинку тролля
твёрдую выкакиваю гавняшену Петросяна
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:28:48 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:31:50
КОЛЯ ФЕРРОЛИТА
упругую высираю подсос анона
жидкую высираю мочи петуха
жидкую высираю мочи Капитана Очевидность
коричневую высираю какашунцию Абу
коричневую высираю гавёшину петуха
вязкую вываливаю поднос нуба
твёрдую испражняюсь какашунцию Номада
жидкую вываливаю какашунцию тролля
упругую вываливаю какашечку хохла
вязкую вываливаю какашунцию петуха
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:29:00 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:32:01
КОЛЯ ФЕРРОЛИТА
жидкую вываливаю какашечку Педалика
упругую испражняюсь поднос Петросяна
упругую испражняюсь дерьмеца хохла
твёрдую пукаю гавёшину Капитана Очевидность
коричневую какаю гавёшину Номада
жидкую испражняюсь гавняшену Петросяна
твёрдую высираю какашунцию нуба
жидкую выкакиваю гавняшену Педалика
жидкую выкакиваю поднос нуба
коричневую испражняюсь поднос хохла
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:29:09 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:32:11
КОЛЯ ФЕРРОЛИТА
коричневую пукаю гавёшину тролля
жидкую выкакиваю гавёшину Номада
упругую высираю дерьмеца хохла
вязкую какаю мочи Абу
упругую высираю гавёшину нуба
упругую какаю дерьмеца говноеда
жидкую высираю подсос ОПа-хуя
вязкую испражняюсь какашечку говноеда
упругую испражняюсь гавняшену Номада
вязкую испражняюсь мочи Абу
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:29:18 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:32:33
КОЛЯ ФЕРРОЛИТА
упругую выкакиваю дерьмеца Петросяна
твёрдую испражняюсь мочи Абу
жидкую выкакиваю гавёшинку ОПа-хуя
жидкую пукаю мочи тролля
коричневую какаю какашечку петуха
жидкую высираю какашунцию нуба
твёрдую высираю подсос братишку
вязкую пукаю гавёшинку школьника
жидкую вываливаю гавёшинку Номада
коричневую какаю поднос тролля
<sup><sup><sup><sup>Генератор пасты 3000.6/16/2013 3:29:47 AM</sup></sup></sup></sup>

Вск 16 Июн 2013 01:38:46
>>49910864
Давай засагаем тред этого уебка, мм? Этот пидор не хочет говорить.

Вск 16 Июн 2013 01:38:54
>>49910948
Двачую господина.

Вск 16 Июн 2013 01:40:03
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 16 Июн 2013 01:40:24
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdфыывfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 16 Июн 2013 01:42:22
>>49909320
Ты не любишь негров.
Профит.

Вск 16 Июн 2013 01:43:05
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkals345sdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 16 Июн 2013 01:43:21
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkals11lsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf
</em>

Вск 16 Июн 2013 01:48:13
>>49910612
Да кому ты сдался? Давай намекни хотя бы что за хобби.

Вск 16 Июн 2013 01:49:03
Оп исчез. Смею сделать вывод, что черный властелин уже в России.

Вск 16 Июн 2013 01:50:19
>>49912126
Я сам приеду и выебу его, если не расскажет про хобби.

Вск 16 Июн 2013 01:51:12
>>49912212
Зачем тебе его хобби? НЕ ЛЕЗЬ В ЧУЖУЮ ЖИЗНЬ!!1

Вск 16 Июн 2013 01:51:51
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjk123jfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf
</em>

Вск 16 Июн 2013 01:51:52
>>49912267
А зачем он тут о своей жизни пишет?

Вск 16 Июн 2013 01:52:07
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsd123fjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf
</em>

Вск 16 Июн 2013 01:52:25
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfa7777alsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf
</em>

Вск 16 Июн 2013 01:52:38
>>49910655
Скажи, что у тебя семья нацистов

Вск 16 Июн 2013 01:52:39
>>49912312
Чтобы не лезли в его жизнь. А еще ему страшно и одиноко.

Вск 16 Июн 2013 01:52:40
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfj99999jfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf
</em>

Вск 16 Июн 2013 01:53:05
СЕГА
using System;
using System.Collections;
using System.Text;

namespace RSARealization
{
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
private uint e;

public uint E
{
get { return e; }
set { e = value; }

get { return e; }
set { e = value; }

get { return e; }
set { e = value; }
}

public uint E
{
get { return e; }
set { e = value; }
}

/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
/// <summary>
/// Открытый ключ RSA
/// </summary>
public struct RSAPublicKey
{
/// <summary>
/// Открытая экспонента ключа <c>e</c>.
/// </summary>
private uint e;
public uint E
{
get { return e; }
set { e = value; }
}



/// <summary>
/// Модуль <c>n</c>.
/// </summary>
private uint n;
public uint N
{
get { return n; }
set { n = value; }
}


/// <summary>
/// Простое число <c>p</c>.
/// </summary>
private uint p;
public uint P
{
get { return p; }
set { p = value; }
}


/// <summary>
/// Простое число <c>q</c>.
/// </summary>
private uint q;
public uint Q
{
get { return q; }
set { q = value; }
}


/// <summary>
/// Конструктор открытого ключа
/// </summary>
/// <param name="e">Открытая экспонента ключа <c>e</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPublicKey(uint e, uint n, uint p, uint q)
{
this.e = e;
this.n = n;
this.p = p;
this.q = q;
}

/// <summary>
/// Представление модуля и открытой экспоненты в виде строки открытого ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, e);
}
}
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;
/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

/// <summary>
/// Секретный ключ RSA
/// </summary>
public struct RSAPrivateKey
{
/// <summary>
/// Секретная экспонента ключа <c>d</c>.
/// </summary>
public uint d;
/// <summary>
/// Модуль <c>n</c>.
/// </summary>
public uint n;

/// <summary>
/// Конструктор секретного ключа
/// </summary>
/// <param name="d">Закрытая экспонента ключа <c>d</c></param>
/// <param name="n">Модуль <c>n</c></param>
public RSAPrivateKey(uint d, uint n)
{
this.d = d;
this.n = n;
}

/// <summary>
/// Представление модуля и закрытой экспоненты в виде строки секретного ключа
/// </summary>
public override string ToString()
{
return String.Format("({0}, {1})", n, d);
}
}

public class RSA
{
/// <summary>
/// Первое случайное простое число p (фактор)
/// </summary>
private uint p;
/// <summary>
/// Второе случайное простое число q (фактор)
/// </summary>
private uint q;
/// <summary>
/// Модуль
/// </summary>
private uint n;
/// <summary>
/// Открытая экспонента ключа
/// </summary>
private uint e;
/// <summary>
/// Секретная экспонента ключа
/// </summary>
private uint d;
/// <summary>
/// Базовый объект для реализации RSA
/// </summary>
private Base comp;

public RSA()
{
comp = new Base();
GenerateKeys(false);
}

public void initPQ(uint p, uint q)
{
this.p = p;
this.q = q;
}

/// <summary>
/// Генерация новой пары открого и закрытого ключей
/// </summary>
public void GenerateKeys(bool manual)
{
if (manual == false)
{
// генерация простых чисел p и q (факторов)
p = comp.GetPrime();
do
q = comp.GetPrime();
while (p == q);
}

n = p * q; // расчет модуля
uint phi = (p - 1) * (q - 1); // вычисление функции Эйлера (p - 1)*(q - 1)
// расчет открытой экспоненты ключа e
// используя алгоритм Евклида
e = (uint)comp.random.Next();
while (e >= phi)
e >>= 1;
if ((e &amp; 1) == 0)
e++;
while (Base.EuclidAlgo(e, phi) != 1)
e += 2;
// расчет секретной экспоненты ключа d
// используя расширенная алгоритм Евклида
d = Base.ExtendedEuclidAlgo(e, phi);
}

/// <summary>
/// Получение факторов p и q
/// </summary>
public uint[] GetPrimes()
{
uint[] primes = {p, q};
return primes;
}

public RSAPublicKey GetPublicKey()
{
return new RSAPublicKey(e, n, p, q);
}

public RSAPrivateKey GetPrivateKey()
{
return new RSAPrivateKey(d, n);
}

/// <summary>
/// Шифрование открытым ключом
/// </summary>
public string Encrypt(RSAPublicKey key, string message)
{
int[] enc = EncodeMessage(message);
ArrayList cipher = new ArrayList();
// zjisteni delky bloku
ulong size = 1;
int k = 0;
while (size < this.n)
{
k++;
size <<= 8;
}
k--;
// sifrovani zpravy
uint x = 0;
int i = 0;
foreach (int l in enc)
{
x <<= 8;
x += (byte)l;
i++;
if (i % k == 0)
{
cipher.Add(comp.XpowerSmodR(x, key.E, key.N));
x = 0;
}
}

return CipherToString(cipher);
}

/// <summary>
/// Расшифрование секретным ключом
/// </summary>
public string Decrypt(RSAPrivateKey key, string cipherstr)
{
ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;
foreach (char c in m)
{
em[i++] = (byte)c;
}
return em;
} ArrayList cipher = new ArrayList();
string[] cipherstrarray = cipherstr.Split(new char[] { &amp;#39; &amp;#39; },
StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < cipherstrarray.Length; i++)
{
cipher.Add(uint.Parse(cipherstrarray<em>));
}
string msg = "";
foreach (uint c in cipher)
{
uint x = comp.XpowerSmodR(c, key.d, key.n);
msg += DecodeMessage(x);
}
return msg;
}

/// <summary>
/// Приведение зашифрованного сообщения к строковому виду
/// </summary>
private string CipherToString(ArrayList cipher)
{
StringBuilder sb = new StringBuilder();
foreach (uint block in cipher)
sb.AppendFormat("{0} ", block);
return sb.ToString();
}

/// <summary>
/// Преобразование строки в массив целых чисел
/// </summary>
private int[] EncodeMessage(string m)
{
int[] em = new int[m.Length];
int i = 0;

}
asdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfa7465456fasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjfasdfjkalsdjf[/b]
</em>

Вск 16 Июн 2013 01:54:41
>>49912373
>страшно и одиноко
Откуда знаешь? Ты ОП?

Вск 16 Июн 2013 01:57:07
>>49912490
Нет, но у меня есть печеньки.

Вск 16 Июн 2013 01:58:41
Блеать, что ж он там такое у них выпрашивает, что даже негроид захотел прилететь к нам в Рашкостан? Пздц заинтриговал

Вск 16 Июн 2013 02:06:37
ОП, куда пропал? Тебя там нигры уже ебут, да?

Вск 16 Июн 2013 02:08:29
>>49913101

Я в героев 5х играю с братом.
да хуйли советов не даёте, сажу кидаете.

Вск 16 Июн 2013 02:10:21
>>49913206
>Петессо, это ты?

Вск 16 Июн 2013 02:18:54
>>49913306

нет

Вск 16 Июн 2013 02:20:43
Если выпилить фейк не выход, выпились сам.

Вск 16 Июн 2013 02:27:05
>>49909320
На момент приезда нигры сними жилье где-нибудь в другом районе. А нигре потом скажешь, что переехала к своему куну, который где-то там(страну придумать по желанию/можно не придумыать). Ну и дальше заливаешь ему про то, что ты верная, хуйня, малафья, а он ревнует и вообще против подобных встреч, потому что он охуенный черный парень и ты бы с радостью, но увы и ах, любовь.

Вск 16 Июн 2013 02:36:44
>>49909320
Ты же сам написал, что живешь временн. Так что тебе мешае сказать гстю из солнечной Африки, что твоя сестра уехала и ты живншь со своей второй сестрой?

Вск 16 Июн 2013 02:39:14
>>49909320
>иначе придется самому давать ему в очко лол.
А почему бы и нет? Учись на огурцах сосать. Будешь отрабатывать. Потом втянешься. Нигра простит.

Вск 16 Июн 2013 02:39:18
>>49914198
> а он ревнует
Это про твоего куна, я так понимаю. Не негра.
другой тян

Вск 16 Июн 2013 02:39:48
>>49914752

ну он это запасной вариант.
но он 1 хуй будет стены писать и ждать пока я к нему в африку поеду.
он готов билет оплатить.

Вск 16 Июн 2013 02:41:32
>>49914930
Создай успешноблядскую фейковую страничку, а после обзови его мужем, а себя его женою.

Вск 16 Июн 2013 02:42:18
Оп, дай моар той шлюхи с пика.

Вск 16 Июн 2013 02:49:34
>>49915448
Спасибо.

Вск 16 Июн 2013 03:59:07
>>49917305
Ну бля, надо было игнорировать, он бы ещё запилил других.


← К списку тредов