ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π‘Π»ΠΎΠΊ-схСма ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ тСкстовых Π΄Π°Π½Π½Ρ‹Ρ…

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

String q = System.IO.File.ReadAllText («KeyTestFile.txt», System.Text.Encoding.GetEncoding («windows-1252»));// считываСм вСсь тСкст Π² Ρ„Π°ΠΉΠ»Π° ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ «windows-1251». String s = System.IO.File.ReadAllText («TestFile.txt», System.Text.Encoding.GetEncoding («windows-1252»));// считываСм вСсь тСкст Π² Ρ„Π°ΠΉΠ»Π° ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ «windows-1251». Для прСдставлСния считанных Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘Π»ΠΎΠΊ-схСма ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡˆΠΈΡ„рования

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡˆΠΈΡ„рования я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»Π° срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual Studio.Net 2008. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Π‘#.

ΠŸΡ€ΠΈ создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»Π° КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Visual C#. КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСт Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку, ΠΎΠ½Π° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для программирования слуТСбных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ консольного прилоТСния автоматичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹. using System — это Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°, которая Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° стандартных классов ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚ранства ΠΈΠΌΠ΅Π½ System нСпосрСдствСнно Π±Π΅Π· указания ΠΈΠΌΠ΅Π½ΠΈ пространства, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹.:

Листинг 1//.

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

Π”Π°Π»Π΅Π΅ автоматичСскиС создаСтся собствСнноС пространство ΠΈΠΌΠ΅Π½:

Листинг 2//.

namespace shifr_cezar_algoritm_gammirov.

Π‘# - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, поэтому написанная Π½Π° Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой классов. АвтоматичСски Π±Ρ‹Π» создан класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ Program. Π”Π°Π½Π½Ρ‹ΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ статистичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Main. Π‘ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° начинаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Листинг 3//.

class Program.

{.

static void Main (string[] args).

{.

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, которая Π½Π°ΠΌ понадобится для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈusing System. IO;

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Main Π·Π°Π΄Π°Π΅ΠΌ Π΄Π²Π΅ строки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ s ΠΈ q. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ, находящСгося Ρ„Π°ΠΉΠ»Π°, тСкст ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ q ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располагаСтся слово, словосочСтаниС ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ нашСго ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡˆΠΈΡ„рования. Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Ρ‚Скстовых Ρ„Π°ΠΉΠ»ΠΎΠ², указывая ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Windows-1252.

Листинг 4//.

string s = System.IO.File.ReadAllText («TestFile.txt», System.Text.Encoding.GetEncoding («windows-1252»));// считываСм вСсь тСкст Π² Ρ„Π°ΠΉΠ»Π° ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ «windows-1251» .

string q = System.IO.File.ReadAllText («KeyTestFile.txt», System.Text.Encoding.GetEncoding («windows-1252»));// считываСм вСсь тСкст Π² Ρ„Π°ΠΉΠ»Π° ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ «windows-1251» .

Π”Π°Π»Π΅Π΅ Π·Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²:

Листинг 5//.

byte[] charsNEW;// - 8ΠΌΠΈ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° asii ΠΊΠΎΠ΄Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… символов.

int ΠΊΠΎΠ΄_строки = 0; //- Π·Π°Π΄Π°Π΅ΠΌ цСлочислСнный Ρ‚ΠΈΠΏ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ 32Ρ…-разрядноС число.

Encoding targetEncoding; //- пСрСмСнная, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ символов.

byte[] encodedChars; //- 8ΠΌΠΈ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ° Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Π²ΠΎΠ΄Π° asii ΠΊΠΎΠ΄Π° символов.

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ нашим Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницС ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡ€Π°Π½ считанный тСкст с Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΊΠ»ΡŽΡ‡. Для истинной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, слСдуСт ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ шаг Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Листинг 6//.

targetEncoding = Encoding. GetEncoding (ΠΊΠΎΠ΄_строки);

encodedChars = targetEncoding. GetBytes (s);

Console.WriteLine («ΡΡ‚Ρ€ΠΎΠΊΠ° = {0} ΠΊΠΎΠ΄Π° символов {1}:», s, ΠΊΠΎΠ΄_строки);

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ дСйствия для считывания ΠΊΠ»ΡŽΡ‡Π°, измСняя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Листинг 7//.

int ΠΊΠΎΠ΄_строки2 = 0;

Encoding targetEncoding2;

byte[] encodedChars2;

targetEncoding2 = Encoding. GetEncoding (ΠΊΠΎΠ΄_строки2);//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы.

encodedChars2 = targetEncoding2. GetBytes (q);//ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ прСдставлСниС Π±Π°ΠΉΡ‚Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Console.WriteLine («ΡΡ‚Ρ€ΠΎΠΊΠ° = {0} ΠΊΠΎΠ΄Π° символов {1}:», q, ΠΊΠΎΠ΄_строки2);

Для прСдставлСния считанных Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ»Ρ‹. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ.

for (int i = 0; i < encodedChars. Length; i++) //- здСсь ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ i (индСкс массива символов).Пока i Π±ΡƒΠ΄Π΅Ρ‚ мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠ»-Π²Π° Π±Π°ΠΉΡ‚ΠΎΠ² строки s, Π±ΡƒΠ΄Π΅Ρ‚ выполнятся Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ процСсс.

Console.WriteLine («ΠΊΠΎΠ΄ символа {0}: {1}», i, encodedChars[i]); // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΡƒΠΊΠ²Ρ‹ // ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ΅ прСдставлСниС строки Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницС.

for (int j = 0; j < encodedChars2. Length; j++).

Console.WriteLine («ΠΊΠΎΠ΄ символа ΠΊΠ»ΡŽΡ‡Π° {0}: {1}», j, encodedChars2[j]); //- Ρ‚ΠΎΠΆΠ΅ самоС ΠΈ Π΄Π»Ρ массива ΠΊΠ»ΡŽΡ‡Π°.

using System;

using System. IO;

using System. Security;

using System.Security.Cryptography;

using System.Runtime.InteropServices;

using System. Text;

namespace CSEncryptDecrypt.

{.

class Class1.

{.

[System.Runtime.InteropServices.DllImport («KERNEL32.DLL», EntryPoint = «RtlZeroMemory»)]// удаляСм ΠΊΠ»ΡŽΡ‡ ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ послС использования для бСзопасности.

public static extern bool ZeroMemory (IntPtr Destination, int Length);

static string GenerateKey ()// фунция, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡, 64 Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ.

{.

DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create ();// автоматичСски создаСтся симмСтричСский ΠΊΠ»ΡŽΡ‡.

return ASCIIEncoding.ASCII.GetString (desCrypto.Key);// Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ автоматичСски сгСнСрированный ΠΊΠ»ΡŽΡ‡ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ.

}.

static void EncryptFile (string sInputFilename, string sOutputFilename, string sKey)// прСдставлСниС Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΈ ΠΊΠ»ΡŽΡ‡Π° Ρ„Π°ΠΉΠ»Π° Π² Π²ΠΈΠ΄Π΅ строки.

{.

FileStream fsInput = new FileStream (sInputFilename, FileMode. Open, FileAccess. Read);

//Π’Π’ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ», ИспользованиС класса FileStream для чтСния, записи, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

FileStream fsEncrypted = new FileStream (sOutputFilename, FileMode. Create, FileAccess. Write);// Ρ€Π΅Π΄ΠΈΠΌ Ρ„Π°ΠΉΠ»Π°, Ρ€Π΅ΠΆΠΈΠΌ доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.

//Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», создаваниС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, ИспользованиС класса FileStream для чтСния, записи, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

DESCryptoServiceProvider DES = new DESCryptoServiceProvider ();

DES.Key = ASCIIEncoding.ASCII.GetBytes (sKey); // ΠΏΠ΅Ρ€Π΅ΠΎΠ΄ Π² asii ΠΊΠΎΠ΄Ρ‹.

DES.IV = ASCIIEncoding.ASCII.GetBytes (sKey);

ICryptoTransform desencrypt = DES. CreateEncryptor ();

CryptoStream cryptostream = new CryptoStream (fsEncrypted, desencrypt, CryptoStreamMode. Write); //запись Π² cryptostream, связываниС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… криптографичСских ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.

byte[] bytearrayinput = new byte[fsInput.Length]; // Π²Π²ΠΎΠ΄ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ массива Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄Π»ΠΈΠ½Ρ‹ fsInput.

fsInput.Read (bytearrayinput, 0, bytearrayinput. Length); // считываниС Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ массива ΠΎΡ‚ 0 Π΄ΠΎ Π΄Π»ΠΈΠ½Ρ‹ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ массива.

cryptostream.Write (bytearrayinput, 0, bytearrayinput. Length);// запись Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ 0 Π΄ΠΎ Π΄Π»ΠΈΠ½Ρ‹ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ массива.

cryptostream.Close ();

fsInput.Close ();

fsEncrypted.Close ();// Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅.

}.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡˆΠΈΡ„рования …

static void DecryptFile (string sInputFilename, string sOutputFilename, string sKey) // статичСскй ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΈΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ.

{.

DESCryptoServiceProvider DES = new DESCryptoServiceProvider ();

DES.Key = ASCIIEncoding.ASCII.GetBytes (sKey);// ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² asii ΠΊΠΎΠ΄ 64 Π±ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡.

DES.IV = ASCIIEncoding.ASCII.GetBytes (sKey);

FileStream fsread = new FileStream (sInputFilename, FileMode. Open, FileAccess. Read); // создаСм ΠΏΠΎΡ‚ΠΎΠΊ Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ.

ICryptoTransform desdecrypt = DES. CreateDecryptor ();

CryptoStream cryptostreamDecr = new CryptoStream (fsread, desdecrypt, CryptoStreamMode. Read);

StreamWriter fsDecrypted = new StreamWriter (sOutputFilename);

fsDecrypted.Write (new StreamReader (cryptostreamDecr).ReadToEnd ());

fsDecrypted.Flush ();

fsDecrypted.Close ();

}.

static void Main ().

{.

string sSecretKey; // создаСм строку.

sSecretKey = GenerateKey ();// присваиваСм строкС сгСнСрированный ΠΊΠ»ΡŽΡ‡.

GCHandle gch = GCHandle. Alloc (sSecretKey, GCHandleType. Pinned);

EncryptFile (@" Ρ„Π°ΠΉΠ» для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. txt", @" Ρ„Π°ΠΉΠ» для Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ. txt", sSecretKey);// ΠΈΠ· Ρ„Π°ΠΉΠ»Π° для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, записываСм ΠΊΠ»ΡŽΡ‡ Π² Ρ„Π°ΠΉΠ» для Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ.

DecryptFile (@" Ρ„Π°ΠΉΠ» для Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ. txt" ,@" Ρ„Π°ΠΈΠ» для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ. txt", sSecretKey);

ZeroMemory (gch.AddrOfPinnedObject (), sSecretKey. Length * 2);

gch.Free ();

}.

}.

}.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ