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

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

02.12.2013, 18:59. Показов 32863. Ответов 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
168 / 107 / 30
Регистрация: 19.01.2013
Сообщений: 849
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru