Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
9 / 8 / 2
Регистрация: 01.11.2013
Сообщений: 111
1

Как кодировать и декодировать файлы алгоритмом Rijndael

20.02.2015, 16:29. Просмотров 1467. Ответов 3


Может кто нибудь подскажет код как кодировать и декодировать файлы алгоритмом Rijndael ? Примного благодарен)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2015, 16:29
Ответы с готовыми решениями:

Как вручную кодировать и декодировать текст?
здрасьте. у меня другой вопрос: как то же самое реализовать вручную? по какому принципу? (начало...

Кодировать и декодировать unicode
Есть текст crkz = '\u0438\u0437 \u041a\u0438\u0442\u0430\u044f \u0432\u043e \u0432\u0441\u0435...

Кодировать/декодировать данные по протоколу RSA
Делаю алгоритм рса, зашифровал в файл свою последовательность, теперь нужно её же считать и...

Считать информацию из одного файла, кодировать во второй и декодировать в третий
Привет, как сделать чтобы программа работала с файлом. Т.е. брала информацию из одного, кодировала...

3
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,507
Записей в блоге: 1
20.02.2015, 18:22 2
Vladislav Grom, смотри пример в спойлере. Не забудь подставить свой вектор и ключ. Их можно взять из нового экземпляра RijndaelManaged.Create() или сгенерировать явно с помощью GenerateIV()/GenerateKey().
Кликните здесь для просмотра всего текста
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
static class CryptoHelper
{
    // Для работы Rijndael требуется вектор инициализации (IV) и ключ (Key)
    // Операции шифрования/деширования должны использовать одинаковые значения IV и Key
    static byte[] IV = new byte[] {0xAF, 0xD1, 0xA1, 0xE7, 0x1D, 0x57, 0xB1, 0x29, 0x46, 0x08, 0x23, 0xD7, 0x5B, 0x24, 0x4E, 0x46};
    static byte[] Key = new byte[] {0x9D, 0x47, 0x08, 0x11, 0xEE, 0x49, 0x3F, 0xE1, 0x6B, 0x12, 0x79, 0x01, 0x0D, 0xBC, 0x98, 0x66, 0x4E, 0x43, 0x3C, 0x91, 0x7C, 0x75, 0xF5, 0x70, 0x8C, 0x87, 0x01, 0xA4, 0xBF, 0x07, 0x90, 0x96};
    
    public static void EncryptFile(string inputFile, string outputFile)
    {
        using (var rijndael = RijndaelManaged.Create())
        {
            rijndael.IV = IV;
            rijndael.Key = Key;
            using (var inputStream = File.OpenRead(inputFile))
            using (var outputStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write))
            using (var encStream = new CryptoStream(outputStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write))
            {
                inputStream.CopyTo(encStream);
            }
        }
    }
    
    public static void DecryptFile(string inputFile, string outputFile)
    {
        using (var rijndael = RijndaelManaged.Create())
        {
            rijndael.IV = IV;
            rijndael.Key = Key;
            using (var inputStream = File.OpenRead(inputFile))
            using (var decStream = new CryptoStream(inputStream, rijndael.CreateDecryptor(), CryptoStreamMode.Read))
            using (var outputStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write))
            {
                decStream.CopyTo(outputStream);
            }
        }
    }
}
0
9 / 8 / 2
Регистрация: 01.11.2013
Сообщений: 111
21.02.2015, 06:20  [ТС] 3
Я не разговариваю на C#
0
Администратор
Эксперт .NET
13114 / 10687 / 4407
Регистрация: 17.03.2014
Сообщений: 21,507
Записей в блоге: 1
21.02.2015, 08:06 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Vladislav Grom, извиняюсь за невнимательность. Вот тот же самый код на VB.NET:
Кликните здесь для просмотра всего текста
vb.net
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
Class CryptoHelper
    ' Для работы Rijndael требуется вектор инициализации (IV) и ключ (Key)
    ' Операции шифрования/деширования должны использовать одинаковые значения IV и Key
    Shared IV As Byte() = {&HAF, &HD1, &HA1, &HE7, &H1D, &H57, &HB1, &H29, &H46, &H08, &H23, &HD7, &H5B, &H24, &H4E, &H46}
    Shared Key As Byte() = {&H9D, &H47, &H08, &H11, &HEE, &H49, &H3F, &HE1, &H6B, &H12, &H79, &H01, &H0D, &HBC, &H98, &H66, &H4E, &H43, &H3C, &H91, &H7C, &H75, &HF5, &H70, &H8C, &H87, &H01, &HA4, &HBF, &H07, &H90, &H96}
    
    Public Shared Sub EncryptFile(ByVal inputFile As String, ByVal outputFile As String)
        Using rijndael As Rijndael = RijndaelManaged.Create()
            rijndael.IV = IV
            rijndael.Key = Key
            Using inputStream = File.OpenRead(inputFile)
                Using outputStream As New FileStream(outputFile, FileMode.Create, FileAccess.Write)
                    Using encStream As New CryptoStream(outputStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write)
                        inputStream.CopyTo(encStream)
                    End Using
                End Using
            End Using
        End Using
    End Sub
    
    Public Shared Sub DecryptFile(ByVal inputFile As String, ByVal outputFile As String)
        Using rijndael As Rijndael = RijndaelManaged.Create()
            rijndael.IV = IV
            rijndael.Key = Key
            Using inputStream = File.OpenRead(inputFile)
                Using decStream As New CryptoStream(inputStream, rijndael.CreateDecryptor(), CryptoStreamMode.Read)
                    Using outputStream As New FileStream(outputFile, FileMode.Create, FileAccess.Write)
                        decStream.CopyTo(outputStream)
                    End Using
                End Using
            End Using
        End Using
    End Sub
End Class
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2015, 08:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Кодировать и декодировать символы путем сдвига их на определенные 5 чисел в диапазоне от -9 до 9
Кодировать и декодировать символы путем сдвига их на определенные 5 чисел в диапазоне от -9 до 9...

Почему нужно кодировать и декодировать данные при передаче по сети
Socket handler = sListener.Accept(); string data = null; // Мы дождались клиента, пытающегося...

Написать программу, которая будет кодировать (и потом декодировать) строку на английском
Ребята, срочно нужно написать программку, подсобите, пожалуйста! Задача: написать программу,...

Медленно шифруются файлы алгоритмом AES
Здравствуйте! У меня очень медленно шифруются файлы по определённым дискам Метод взят от сюда ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.