Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.01.2017, 18:21   #1
BPro
Пользователь
 
Регистрация: 03.05.2016
Сообщений: 11
Репутация: 10
По умолчанию Шифрование , AES+RSA

Собственно как реализовать по отдельности AES или же RSA - я в курсе.
Но часто начал встречать ,что шифруют следующим образом:

Генерируется пара ключей RSA2048 . Генерируется ключ AES .далее ключ AES шифруется ключем RSA .
Но я так и не понял,как это организовать.
Кто подскажет пример для наглядности,буду очень благодарен.

Код:


        static string publicKey;
        static string privateKey;

        public static void GenerateKeys(out string PublicKey, out string PrivateKey)
        {
            using (RSACryptoServiceProvider RSA2048 = new RSACryptoServiceProvider(2048))
            {
                RSA2048.PersistKeyInCsp = false;
                PublicKey = RSA2048.ToXmlString(false);
                PrivateKey = RSA2048.ToXmlString(true);
            }
        }

        public static byte[] Encrypt(string PublicKey, byte[] plain)
        {
            using (RSACryptoServiceProvider RSA2048 = new RSACryptoServiceProvider(2048))
            {
                RSA2048.PersistKeyInCsp = false;
                RSA2048.FromXmlString(PublicKey);
                //return Convert.ToBase64String(RSA2048.Encrypt(Encoding.UTF8.GetBytes(plain), false));
                return RSA2048.Encrypt(plain, false);
            }
        }

        public static string Decrypt(string PrivateKey, string cipher)
        {
            using (RSACryptoServiceProvider RSA2048 = new RSACryptoServiceProvider(2048))
            {
                RSA2048.PersistKeyInCsp = false;
                RSA2048.FromXmlString(PrivateKey);
                return Encoding.UTF8.GetString(RSA2048.Decrypt(Convert.FromBase64String(cipher), false));
            }
        }


        static void z()
        {
            GenerateKeys(out publicKey, out privateKey);
        }


      

        public static byte[] EncodeCrypt(byte[] input, byte[] passwordBytes) //Encryption
        {
            byte[] CoreBytes = null;
            //byte[] ChinaB = new byte[] { 4, 3, 6, 1, 2, 2, 9, 5 };
            // byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

             byte[] EncryptedSymmetricKey = Encrypt(publicKey, passwordBytes);
             byte[] EncryptedSymmetricIV = Encrypt(publicKey, passwordBytes);

            using (MemoryStream ms = new MemoryStream())
            {
                using (RijndaelManaged EncAlgo = new RijndaelManaged())
                {
                    EncAlgo.KeySize = 256;
                    EncAlgo.BlockSize = 128;

                    EncAlgo.Key = EncryptedSymmetricKey;
                    EncAlgo.IV = EncryptedSymmetricIV;
                   EncAlgo.Mode = CipherMode.CBC;

                    using (var cs = new CryptoStream(ms, EncAlgo.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(input, 0, input.Length);
                        cs.Close();
                    }
                    CoreBytes = ms.ToArray();
                }
            }
            return CoreBytes;
        }
В правильном ли я направлении ?

Последний раз редактировалось BPro; 06.01.2017 в 19:25.
BPro вне форума   Ответить с цитированием
Старый 01.08.2019, 22:36   #2
rudnight
 
Регистрация: 29.07.2019
Сообщений: 5
Репутация: 10
По умолчанию

Нашёл решение?
rudnight вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация RSA/AES на с/с++ Svetlana08 Помощь студентам 2 27.04.2015 20:15
OpenSSL AES - шифрование gunsoy C/C++ Сетевое программирование 1 11.04.2014 23:55
Шифрование AES. asmars Общие вопросы C/C++ 3 03.05.2012 16:22
Шифрование AES Samara Помощь студентам 3 29.10.2011 18:10
Шифрование AES SergunchikSK Общие вопросы Delphi 13 25.08.2009 10:36


09:08.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.