Forum
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ı
gene cevap yazan yok 2 güne kalmaz bu sorumun cevabını da yazarım
Ayrıca klasör de şifreleme olsun
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);
}
}
Cevabı yazdım editör kontrolünü beklemeniz gerekiyor.
daha kaç saat bekleyeceğim bilmiyorum
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.
*****************************************************************
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.
*****************************************************************
Hepimizin elinize sağlık
Çok Teşekkür Ederim