С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/160: Рейтинг темы: голосов - 160, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 18

Алгоритм шифрования RSA

02.12.2013, 18:59. Показов 32835. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Столкнулся со следующей проблемой:
Пытаюсь реализовать алгоритм шифрования RSA, нахожу все значения которые нужны для составления открытого и закрытого ключа. Затем мне необходимо номер UNICODE'а каждого символа введенного в текстбокс1 записать в массив и применить к каждому номеру UNICODE'а алгоритм RSA. Далее, записать новое значение символов в текстбокс2. Подскажите как это правильно реализовать или посоветуйте другой вариант решения этой проблемы. Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2013, 18:59
Ответы с готовыми решениями:

Алгоритм шифрования RSA
Здравствуйте. Может кто помочь с написанием кода для шифрования RSA? На словах суть данного шифрования понятна, но вот когда начинаешь...

Ошибка в системе шифрования RSA
Возникает ошибка при расшифровании с помощью системы RSA: Ошибка при декодировании заполнения OAEP. Шифрование (зашифровывает правильно):...

Алгоритм RSA
Всем привет. Вот пытаюсь изобрести велосипед))) Короче почти все работает, сообщение шифруется, возникла проблема при расшифровке. т.к....

9
 Аватар для СтуденT
6 / 6 / 1
Регистрация: 18.12.2011
Сообщений: 126
03.12.2013, 00:23
Nirvano, Что именно тебя интересует?
Получи из строки массив
C#
1
TextBox.Text.ToCharArray();
Чтобы получить номер в юникоде, достаточно явно преобразовать в int
C#
1
int code = (int)charSimvol
,
ну а по алгоритму RSA в интернете достаточно примеров, вот первый попавшийся.
0
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 18
12.12.2013, 15:39  [ТС]
Необходимо реализовать алгоритм шифрования RSA. Спасибо за ссылку, буду разбираться.
0
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 18
12.12.2013, 23:09  [ТС]
Начал разбираться с этим примером. Вроде бы шифрует, но при дешифровании выдает ошибку.
0
167 / 106 / 30
Регистрация: 19.01.2013
Сообщений: 847
12.12.2013, 23:59
Зашифровать файл указанным алгоритмом

Там мой проект. Задавайте вопросы, если надо.
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
13.12.2013, 00:07
Цитата Сообщение от Nirvano Посмотреть сообщение
Вроде бы шифрует, но при дешифровании выдает ошибку.
Попробуйте удалить строчку Array.Reverse
0
 Аватар для 5665tm
171 / 120 / 14
Регистрация: 17.06.2013
Сообщений: 386
13.12.2013, 00:37
эмм, я извиняюсь, может я неверно понял что требуется, просто как то раз имел дело с HMACSHA512, ничего сложного, просто нужно было работать с using System.Security.Cryptography, и как оказалось RSA там тоже есть - http://msdn.microsoft.com/ru-r... 10%29.aspx
0
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 18
13.12.2013, 01:11  [ТС]
Цитата Сообщение от Grishaco Посмотреть сообщение
Попробуйте удалить строчку Array.Reverse
Что с этой строкой, что без неё, всё равно такая же ошибка...

Добавлено через 30 минут
Цитата Сообщение от 5665tm Посмотреть сообщение
эмм, я извиняюсь, может я неверно понял что требуется, просто как то раз имел дело с HMACSHA512, ничего сложного, просто нужно было работать с using System.Security.Cryptography, и как оказалось RSA там тоже есть - http://msdn.microsoft.com/ru-r... 10%29.aspx
Вот код, тут этот класс итак используется.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.Collections;
 
namespace WindowsFormsApplication2
{
    class Class1
    {
        public string EncryptString(string inputString, int dwKeySize)
        {
            // TODO: Add Proper Exception Handlers
            RSACryptoServiceProvider rsaCryptoServiceProvider =
                                          new RSACryptoServiceProvider(dwKeySize);
           // rsaCryptoServiceProvider.FromXmlString(xmlString);
            int keySize = dwKeySize / 8;
            byte[] bytes = Encoding.UTF32.GetBytes(inputString);
            // The hash function in use by the .NET RSACryptoServiceProvider here 
            // is SHA1
            // int maxLength = ( keySize ) - 2 - 
            //              ( 2 * SHA1.Create().ComputeHash( rawBytes ).Length );
            int maxLength = keySize - 42;
            int dataLength = bytes.Length;
            int iterations = dataLength / maxLength;
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i <= iterations; i++)
            {
                byte[] tempBytes = new byte[
                        (dataLength - maxLength * i > maxLength) ? maxLength :
                                                      dataLength - maxLength * i];
                Buffer.BlockCopy(bytes, maxLength * i, tempBytes, 0,
                                  tempBytes.Length);
                byte[] encryptedBytes = rsaCryptoServiceProvider.Encrypt(tempBytes,
                                                                          true);
                // Обратите внимание, что RSACryptoServiceProvider меняет порядок 
                // зашифрованных байт. Он делает это после шифрования и перед 
                // дешифровкой. Если Вам не нужна совместимость с Microsoft 
                // Cryptographic API (CAPI) или другими поставщиками, то закомментируйте
                // следующую строку и соотвтетствующую строчку в функции DecryptString.
                //Array.Reverse(encryptedBytes);
                // Зачем конвертировать в base 64?
                // Потому что это одно из основных печатных оснований использующих только 
                // символы ASCII
                stringBuilder.Append(Convert.ToBase64String(encryptedBytes));
            }
            return stringBuilder.ToString();
        }
 
        public string DecryptString(string inputString, int dwKeySize)
        {
            // TODO: Add Proper Exception Handlers
            RSACryptoServiceProvider rsaCryptoServiceProvider
                                     = new RSACryptoServiceProvider(dwKeySize);
           // rsaCryptoServiceProvider.FromXmlString(xmlString);
            int base64BlockSize = ((dwKeySize / 8) % 3 != 0) ?
              (((dwKeySize / 8) / 3) * 4) + 4 : ((dwKeySize / 8) / 3) * 4;
            int iterations = inputString.Length / base64BlockSize;
            ArrayList arrayList = new ArrayList();
            for (int i = 0; i < iterations; i++)
            {
                byte[] encryptedBytes = Convert.FromBase64String(
                     inputString.Substring(base64BlockSize * i, base64BlockSize));
                // Обратите внимание, что RSACryptoServiceProvider меняет порядок 
                // зашифрованных байт. Он делает это после шифрования и перед 
                // дешифровкой. Если Вам не нужна совместимость с Microsoft 
                // Cryptographic API (CAPI) или другими поставщиками, то закомментируйте
                // следующую строку и соотвтетствующую строчку в функции EncryptString.
               // Array.Reverse(encryptedBytes);
                arrayList.AddRange(rsaCryptoServiceProvider.Decrypt(
                                    encryptedBytes, true));
            }
            return Encoding.UTF32.GetString(arrayList.ToArray(
                                      Type.GetType("System.Byte")) as byte[]);
        }
    }
}
0
29 / 29 / 8
Регистрация: 16.10.2012
Сообщений: 170
13.12.2013, 01:45
вот нашел кое что для тебя за второй курс
может быть поможет
Вложения
Тип файла: zip лаб 4.zip (52.3 Кб, 1554 просмотров)
1
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 5
26.04.2016, 04:57
А МОЖНО ПОДРОБНЕЕ ПРО
int keySize = dwKeySize / 8;
int maxLength = keySize - 42;
(((dwKeySize / 8) / 3) * 4) + 4 : ((dwKeySize / 8) / 3) * 4;
САВСИБО!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2016, 04:57
Помогаю со студенческими работами здесь

Цифровая подпись, алгоритм RSA
можете, пожалуйста, показать самый простой пример программы реализации алгоритма RSA... не нашла на форуме простых примеров...

Расширенный алгоритм Евклида для RSA
может кто помочь написать код на С# для нахождения НОД по Расширенный алгоритм Евклида Вот тут Онлайн калькулятор, снизу написана...

Ошибка при дешифровании, алгоритм RSA
Здравствуйте! Пишу приложения сервер и клиент. В приложениях поставил шифрование RSA, но возникли проблемы при дешифровании, получаю...

Алгоритм RSA - нужна связка C# и PHP
Здравствуйте уважаемые Гуру! Понадобилось шифровать на С# (клиент )а расшифровывать на PHP (сервер) В С# есть класс...

Алгоритм шифрования
Нужен алгоритм шифрования и дешифрования строки. Два метода. Шифруем строку с помощью пароля. Дешифруем тоже с помощь пароля. public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru