Harry Potter and the Sorcerer's Stone


Ma'lumotlar oqimi yordamida shifrlangan ikkilik faylga ma'lumotlarni


Download 192.49 Kb.
bet35/62
Sana17.06.2023
Hajmi192.49 Kb.
#1535967
1   ...   31   32   33   34   35   36   37   38   ...   62
Bog'liq
Algaritim amaliy-2

72. Ma'lumotlar oqimi yordamida shifrlangan ikkilik faylga ma'lumotlarni
o'qiydigan va yozadigan C# dasturini yozing.
Javob:
using System;
using System.IO;
using System.Security.Cryptography;
namespace EncryptedFileStream
{
class Program
{
static void Main(string[] args)
{
string plainText = "Secret message that we want to encrypt!";
byte[] key = new byte[16]; // Use a strong, random key in your actual code
byte[] iv = new byte[16]; // Use a unique IV for each message in your actual code

// Create the encrypted file


using FileStream fs = new FileStream("encrypted.bin", FileMode.Create);
using Aes aes = Aes.Create();
aes.Key = key;
aes.IV = iv;
using CryptoStream cs = new CryptoStream(fs, aes.CreateEncryptor(), CryptoStreamMode.Write);
using StreamWriter sw = new StreamWriter(cs);
sw.Write(plainText);

// Read the encrypted file


using FileStream fs2 = new FileStream("encrypted.bin", FileMode.Open);
using Aes aes2 = Aes.Create();
aes2.Key = key;
aes2.IV = iv;
using CryptoStream cs2 = new CryptoStream(fs2, aes2.CreateDecryptor(), CryptoStreamMode.Read);
using StreamReader sr = new StreamReader(cs2);
string decryptedText = sr.ReadToEnd();

Console.WriteLine(decryptedText);


Console.ReadKey();
}
}
}
Ushbu dasturda biz avval FileStream yaratamiz va shifrlash kaliti va ishga tushirish vektorini (IV) yaratish uchun Aes misolidan foydalanamiz. Keyin faylga ochiq matnni yozish uchun shifrlash konvertatsiyasi bilan CryptoStream dan foydalanamiz va uni yozilganidek shifrlaymiz.
Keyin, biz fayldan shifrlangan ma'lumotlarni o'qish uchun boshqa FileStream dan va shifrni ochish konvertatsiyasini yaratish uchun bir xil kalit va IVga ega Aes misolidan foydalanamiz. Biz shifrlangan maʼlumotlarni oʻqish va oʻqilayotgan paytda shifrini ochish uchun boshqa CryptoStream dan foydalanamiz, soʻngra StreamReaderdan ochiq matnni oʻqiymiz.
Esda tutingki, haqiqiy kodingizda siz shifrlagan har bir xabar uchun kuchli, tasodifiy kalit va noyob IV dan foydalanishingiz kerak. RNGCryptoServiceProvider yordamida tasodifiy kalit va IV ni yaratishingiz mumkin. Shuningdek, ArgumentException, IOException, NotSupportedException va CryptographicException kabi istisnolar bilan ishlaganingizga ishonch hosil qiling.

Download 192.49 Kb.

Do'stlaringiz bilan baham:
1   ...   31   32   33   34   35   36   37   38   ...   62




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling