Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 07.04.2019
Сообщений: 2
1

Шифрование RSA и 3DES

08.04.2019, 12:15. Показов 2384. Ответов 1

Author24 — интернет-сервис помощи студентам
Необходимо создать консольное приложение по этому шаблону:
1. Задать пароль.
2. Сгенерировать пару ассиметричных ключей.
3. Зашифровать пароль алгоритмом RSA.
4. Расшифровать пароль.
5. Сгенерировать на основе пароля симметричный ключ шифрования.
6. Зашифровать файл алгоритмом 3DES.
7. Расшифровать зашифрованный файл.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp1
{
    class Program
    {
       
        static void Main(string[] args)
        {
            RSAParameters privateKey;
            RSAParameters publicKey;
 
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
            privateKey = RSA.ExportParameters(true);
            publicKey = RSA.ExportParameters(false);
 
            UnicodeEncoding byteConverter = new UnicodeEncoding();
            string toEncrypt = "Hello, world";
 
            Console.WriteLine($"To encode: {toEncrypt}");
 
            byte[] encBytes = RSAEncrypt(byteConverter.GetBytes(toEncrypt), publicKey, false);
 
            string encrypt = byteConverter.GetString(encBytes);
            Console.WriteLine("Encrypt str: " + encrypt);
            Console.WriteLine("Encrypt bytes: " + string.Join(", ", encBytes));
 
            byte[] decBytes = RSADecrypt(encBytes, privateKey, false);
 
            Console.WriteLine("Decrypt str: " + byteConverter.GetString(decBytes));
            Console.WriteLine("Decrypt bytes: " + string.Join(", ", byteConverter.GetBytes(encrypt)));
 
            Console.ReadKey();
        }
    }
}
Это мой код на первые 4 пункта , дальше не могу понять как делать.
Подскажите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2019, 12:15
Ответы с готовыми решениями:

Шифрование RSA
Стоит следующая задача - используя алгоритм RSA зашифровать входной файл. P и Q вводятся с...

Шифрование rsa
Всем доброго времени суток. Работаю с C# сравнительно не долго и, мягко говоря, в этом я так...

Шифрование текста через RSA Public Key
Как можно зашифровать текст через RSA public key

Шифрование текстового файла с помощью алгоритма 3DES
Написать программу, которая зашифровывает и расшифровывает текстовый файл, с помощью алгоритма...

1
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,341
Записей в блоге: 1
09.04.2019, 16:08 2
Syrel, интерес в п5-7 представляет генерация ключа на основе пароля. Зашифровать/расшифровать файл юудет несложно. В документации есть пример.

Генерацию ключа из пароля можно сделать с помощью PBKDF2. Для надежности из пароля также генерируется случайная соль.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static class Extensions
{
    public static void GenerateKeyAndIV(this SymmetricAlgorithm alg, string password)
    {
        int seed = 17;
        foreach (var b in Encoding.UTF8.GetBytes(password))
        {
            seed = seed * 486187759 + b;
        }
        
        Random rnd = new Random(seed);
        byte[] salt = new byte[11];
        rnd.NextBytes(salt);
        
        using (var deriveBytes = new Rfc2898DeriveBytes(password, salt, 5000))
        {
            alg.Key = deriveBytes.GetBytes(alg.KeySize/8);
            alg.IV = deriveBytes.GetBytes(alg.BlockSize/8);
        }
    }
}
Использование
C#
1
2
3
4
5
6
using (var tripleDes = new TripleDESCryptoServiceProvider())
{
    string password = "the_secr3t";
    tripleDes.GenerateKeyAndIV(password);
    // ...
}
0
09.04.2019, 16:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2019, 16:08
Помогаю со студенческими работами здесь

Шифрование 3DES. Индекс находился вне границ массива
Приветствую, есть какие-то ошибки в данном коде, уже готовый DES пытался переделать в 3DES , вроде...

Как поменять результат шифрование \ Метод шифрование RSA
Здравствуйте! Прошу помощи! В просторах интернета нашла одну статью в которой реализован метод...

Rsa шифрование
Доброго времени суток, пытаюсь разобраться с шифрованием, пару ключей генерирует, открытым ключом...

RSA шифрование
Доброго времени суток, у меня возникла такая проблема, преподаватель дал задание: "написать свою...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru