İstanbul escort bayan sivas escort samsun escort bayan sakarya escort Muğla escort Mersin escort Escort malatya Escort konya Kocaeli Escort Kayseri Escort izmir escort bayan hatay bayan escort antep Escort bayan eskişehir escort bayan erzurum escort bayan elazığ escort diyarbakır escort escort bayan Çanakkale Bursa Escort bayan Balıkesir escort aydın Escort Antalya Escort ankara bayan escort Adana Escort bayan

Ana Sayfa Elektronik Öğrenin Dijital elektronik Dosya Şifreleme ve Şifre Çözme

Dosya Şifreleme ve Şifre Çözme

0

Yazdığınız programın bazı verileri text dosyasına kaydetmesi ve belli süreliğine burada tutması gerebilir. Özellikle veri tabanı gibi gizli tutulması gereken dijital alanların erişim bilgileri “HOST” bilgisayarda tutulması gerekir.  Bu bilgilere başkaları tarafından ulaşılması istenmez. Böyle durumlarda bu bilgileri şifrelemek için çeşitli yollar kullanılıyor.

 

Visual C#, kullanıcıları için şifreleme olayını kolaylaştıran çeşitli kütüphaneler barındırıyor.  Bu kütüphaneleri kullanarak istediğiniz dosyaları şifreleyip istediğiniz dosyaların şifresini çözerek bilgilerine erişebilirsiniz.

 

Dosya şifreleme için programınıza eklemeniz gereken kütüphaneler şunlar;

System.IO
System.Security
System.Security.Cryptography

C# içerisinde otomatik şifre üremek için başka bir fonksiyon kullanabilirsiniz. Ya da 16 basamakdan(digit) oluşan kendi şifrenizi oluşturabilirsiniz.   Şifre üremek için kullanılan fonksiyon ise şu şekilde;

        static string GenerateKey()
        {
            DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
           return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
        }

Dosyayı şifrelemek için yazmamız gereken fonksiyon şu şekilde;

 private static void EncryptFile(string inputFile, string outputFile, string skey)
        {
            try
            {
                using (RijndaelManaged aes = new RijndaelManaged())
                {
                    byte[] key = ASCIIEncoding.UTF8.GetBytes(skey);

                    byte[] IV = ASCIIEncoding.UTF8.GetBytes(skey);

                    using (FileStream fsCrypt = new FileStream(outputFile, FileMode.Create))
                    {
                        using (ICryptoTransform encryptor = aes.CreateEncryptor(key, IV))
                        {
                            using (CryptoStream cs = new CryptoStream(fsCrypt, encryptor, CryptoStreamMode.Write))
                            {
                                using (FileStream fsIn = new FileStream(inputFile, FileMode.Open))
                                {
                                    int data;
                                    while ((data = fsIn.ReadByte()) != -1)
                                    {
                                        cs.WriteByte((byte)data);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Bu dosyanın şifresini çözerek okumak için yazmamız gereken fonksiyon şu şekilde

private static void DecryptFile(string inputFile, string outputFile, string skey)
        {
            try
            {
                using (RijndaelManaged aes = new RijndaelManaged())
                {
                    byte[] key = ASCIIEncoding.UTF8.GetBytes(skey);

                   
                    byte[] IV = ASCIIEncoding.UTF8.GetBytes(skey);

                    using (FileStream fsCrypt = new FileStream(inputFile, FileMode.Open))
                    {
                        using (FileStream fsOut = new FileStream(outputFile, FileMode.Create))
                        {
                            using (ICryptoTransform decryptor = aes.CreateDecryptor(key, IV))
                            {
                                using (CryptoStream cs = new CryptoStream(fsCrypt, decryptor, CryptoStreamMode.Read))
                                {
                                    int data;
                                    while ((data = cs.ReadByte()) != -1)
                                    {
                                        fsOut.WriteByte((byte)data);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message); 
            }
        }

 

Dosyayı şifrelemek için bu fonksiyonları ana program bloğunda şu şekilde kullanıyoruz;

EncryptFile("Şifrelemek istenilen dosyanın yeri", "Şifrelenen dosyanın yeri", "16 basamak şifre);

Örnek;

EncryptFile("C:\\secret_file.txt", "C:\\secret_file_s.txt","1234567891234567");

Dosyanın şifresini çözmek için bu fonksiyonları ana program bloğunda şu şekilde kullanıyoruz;

DecryptFile("Şifrelenmiş Dosyanın Yeri", "Şifresi çözülen dosyanın yeri", "16 Basamak şifre");

Örnek;

EncryptFile("C:\\secret_s_file.txt", "C:\\secret_file_2s.txt","1234567891234567");

 

 

 

YORUM YOK

CEVAP VER

Please enter your comment!
Please enter your name here

Exit mobile version