Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2017, 17:21   #1
BPro
Пользователь
 
Регистрация: 03.05.2016
Сообщений: 11
По умолчанию Шифрование , 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 в 18:25.
BPro вне форума Ответить с цитированием
Старый 01.08.2019, 21:36   #2
rudnight
 
Регистрация: 29.07.2019
Сообщений: 5
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация RSA/AES на с/с++ Svetlana08 Помощь студентам 2 27.04.2015 19: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