Forum

Dosya Şifreleme
 
Bildirimler
Hepsini Temizle

Dosya Şifreleme

9 Yazılar
3 Üyeler
0 Likes
442 Görüntüleme
(@teknik-mesut)
Gönderiler: 119
Estimable Member
Konu başlatıcı
 

Merhaba ben  vb.nette veya c#'ta bir text dosyasının şifrelenmesi istiyorum


Programım kapansa bile benim txt dosyam şifreli kalacak


Aynı winrar winzip'teki dosya şifreleme gibi tek fark benim dosyalarımın sıkıştırılmaya gerek kalmaması


 


 

 
Gönderildi : 29/06/2009 12:47

(@teknik-mesut)
Gönderiler: 119
Estimable Member
Konu başlatıcı
 

gene cevap yazan yok 2 güne kalmaz bu sorumun cevabını da yazarım


 


Ayrıca klasör de şifreleme olsun

 
Gönderildi : 29/06/2009 15:24

(@suleymangunel)
Gönderiler: 90
Estimable Member
 

Mesut Bey öncelikle dosya şifreleme yani kriptografi konusu farklı zorluk derecelerine göre düşünülmesi gereken bir konudur. Basit olarak dosya içindeki her karakter bir bitmask ten geçirerek bunları şifreleme şansınız var ama brutal attack ile bu 1-2 dakika içinde çözülecektir. Diğer bir yöntem ise .NET Framework 3.5 tarafından da desteklenen RijnDael kodlama yöntemini içeren Rijndael sınıfını kullanmaktır. Aşağıda buna ilişkin bir örnek veriyorum. Bu örnekte textbox1'in içindeki metin RijnDael metodu ile kodlanarak "deneme.txt" dosyasına yazılmakta veya "deneme.txt" dosyasındaki RijnDael yöntemi ile kodlanmış veri textbox4'ün içine okunmakta. Dosyanın açılabilmesi kulanılan "Anahtar_Cümle" cümlesine bağlıdır. İyi çalışmalar dilerim.

 

public partial class Form1 : Form
    {
        Rijndael RijndaelAlg = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void DosyaEncode_Click(object sender, EventArgs e)
        {
            EncryptTextToFile(textBox1.Text, "c:\\deneme.txt", RijndaelAlg.Key, RijndaelAlg.IV);
        }

        private void DosyaDecode_Click(object sender, EventArgs e)
        {
            textBox4.Text = DecryptTextFromFile("c:\\deneme.txt", RijndaelAlg.Key, RijndaelAlg.IV);
        }
        
        public static void EncryptTextToFile(String Data, String FileName, byte[] Key, byte[] IV)
        {
            try
            {
                FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
                Rijndael RijndaelAlg = Rijndael.Create();
                CryptoStream cStream = new CryptoStream(fStream,
                    RijndaelAlg.CreateEncryptor(Key, IV),
                    CryptoStreamMode.Write);
                StreamWriter sWriter = new StreamWriter(cStream);
                try
                {
                    sWriter.WriteLine(Data);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Hata oluştu: {0}", e.Message);
                }
                finally
                {
                    sWriter.Close();
                    cStream.Close();
                    fStream.Close();
                }
            }
            catch (CryptographicException e)
            {
                Console.WriteLine("Kriptografik hata oluştu: {0}", e.Message);
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("Dosya hatası oluştu: {0}", e.Message);
            }

        }

        public static string DecryptTextFromFile(String FileName, byte[] Key, byte[] IV)
        {
            try
            {
                FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
                Rijndael RijndaelAlg = Rijndael.Create();
                CryptoStream cStream = new CryptoStream(fStream,
                    RijndaelAlg.CreateDecryptor(Key, IV),
                    CryptoStreamMode.Read);
                StreamReader sReader = new StreamReader(cStream);

                string val = null;
                
                try
                {
                    val = sReader.ReadLine();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Hata oluştu: {0}", e.Message);
                }
                finally
                {
                    sReader.Close();
                    cStream.Close();
                    fStream.Close();
                }
                return val;
            }
            catch (CryptographicException e)
            {
                Console.WriteLine("Kriptografik hata oluştu: {0}", e.Message);
                return null;
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("Dosya hatası oluştu: {0}", e.Message);
                return null;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            byte[] encVeri_byte = System.Text.Encoding.UTF8.GetBytes("Anahtar_cümle");
            string encodedVeri = Convert.ToBase64String(encVeri_byte);

            RijndaelAlg = Rijndael.Create();
            RijndaelAlg.BlockSize = 128;
            RijndaelAlg.KeySize = 128;
            RijndaelAlg.Mode = CipherMode.CBC;
            RijndaelAlg.Padding = PaddingMode.PKCS7;
            RijndaelAlg.Key = Convert.FromBase64String(encodedVeri);
            RijndaelAlg.IV = Convert.FromBase64String(encodedVeri);
        }
    }

 
Gönderildi : 30/06/2009 11:58

(@suleymangunel)
Gönderiler: 90
Estimable Member
 

Cevabı yazdım editör kontrolünü beklemeniz gerekiyor.

 
Gönderildi : 30/06/2009 16:11

(@teknik-mesut)
Gönderiler: 119
Estimable Member
Konu başlatıcı
 

daha kaç saat bekleyeceğim bilmiyorum

 
Gönderildi : 30/06/2009 20:52

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33006
Illustrious Member Yönetici
 

Merhaba

konu nedir ? yani neden bekleme ihtiyacı duyuyorsunuz ?

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 01/07/2009 11:56

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33006
Illustrious Member Yönetici
 

Mesut Bey öncelikle dosya şifreleme yani kriptografi konusu farklı zorluk derecelerine göre düşünülmesi gereken bir konudur. Basit olarak dosya içindeki her karakter bir bitmask ten geçirerek bunları şifreleme şansınız var ama brutal attack ile bu 1-2 dakika içinde çözülecektir. Diğer bir yöntem ise .NET Framework 3.5 tarafından da desteklenen RijnDael kodlama yöntemini içeren Rijndael sınıfını kullanmaktır. Aşağıda buna ilişkin bir örnek veriyorum. Bu örnekte textbox1'in içindeki metin RijnDael metodu ile kodlanarak "deneme.txt" dosyasına yazılmakta veya "deneme.txt" dosyasındaki RijnDael yöntemi ile kodlanmış veri textbox4'ün içine okunmakta. Dosyanın açılabilmesi kulanılan "Anahtar_Cümle" cümlesine bağlıdır. İyi çalışmalar dilerim.

 

public partial class Form1 : Form
    {
        Rijndael RijndaelAlg = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void DosyaEncode_Click(object sender, EventArgs e)
        {
            EncryptTextToFile(textBox1.Text, "c:\\deneme.txt", RijndaelAlg.Key, RijndaelAlg.IV);
        }

        private void DosyaDecode_Click(object sender, EventArgs e)
        {
            textBox4.Text = DecryptTextFromFile("c:\\deneme.txt", RijndaelAlg.Key, RijndaelAlg.IV);
        }
        
        public static void EncryptTextToFile(String Data, String FileName, byte[] Key, byte[] IV)
        {
            try
            {
                FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
                Rijndael RijndaelAlg = Rijndael.Create();
                CryptoStream cStream = new CryptoStream(fStream,
                    RijndaelAlg.CreateEncryptor(Key, IV),
                    CryptoStreamMode.Write);
                StreamWriter sWriter = new StreamWriter(cStream);
                try
                {
                    sWriter.WriteLine(Data);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Hata oluştu: {0}", e.Message);
                }
                finally
                {
                    sWriter.Close();
                    cStream.Close();
                    fStream.Close();
                }
            }
            catch (CryptographicException e)
            {
                Console.WriteLine("Kriptografik hata oluştu: {0}", e.Message);
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("Dosya hatası oluştu: {0}", e.Message);
            }

        }

        public static string DecryptTextFromFile(String FileName, byte[] Key, byte[] IV)
        {
            try
            {
                FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
                Rijndael RijndaelAlg = Rijndael.Create();
                CryptoStream cStream = new CryptoStream(fStream,
                    RijndaelAlg.CreateDecryptor(Key, IV),
                    CryptoStreamMode.Read);
                StreamReader sReader = new StreamReader(cStream);

                string val = null;
                
                try
                {
                    val = sReader.ReadLine();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Hata oluştu: {0}", e.Message);
                }
                finally
                {
                    sReader.Close();
                    cStream.Close();
                    fStream.Close();
                }
                return val;
            }
            catch (CryptographicException e)
            {
                Console.WriteLine("Kriptografik hata oluştu: {0}", e.Message);
                return null;
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("Dosya hatası oluştu: {0}", e.Message);
                return null;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            byte[] encVeri_byte = System.Text.Encoding.UTF8.GetBytes("Anahtar_cümle");
            string encodedVeri = Convert.ToBase64String(encVeri_byte);

            RijndaelAlg = Rijndael.Create();
            RijndaelAlg.BlockSize = 128;
            RijndaelAlg.KeySize = 128;
            RijndaelAlg.Mode = CipherMode.CBC;
            RijndaelAlg.Padding = PaddingMode.PKCS7;
            RijndaelAlg.Key = Convert.FromBase64String(encodedVeri);
            RijndaelAlg.IV = Convert.FromBase64String(encodedVeri);
        }
    }

Elinize sağlık Süleyman bey

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 01/07/2009 11:57

(@suleymangunel)
Gönderiler: 90
Estimable Member
 

Hepimizin elinize sağlık

 
Gönderildi : 01/07/2009 13:47

(@teknik-mesut)
Gönderiler: 119
Estimable Member
Konu başlatıcı
 

Çok Teşekkür Ederim

 
Gönderildi : 01/07/2009 23:22

Paylaş: