ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ
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 ();
}.
}.
}.