namespace rc2desifreleme
{
public class Class1
{
private static void desifre(string dosya, string sifre)
{
//parametrelerimizi tanımlıyoruz
bool devam = parametre(dosya, ref sifre);
if (!devam) return;
//rc2 algoritmamıza başlıyoruz
RC2 rc2 = RC2.Create();
byte[] dizi = new byte[16] { 83, 97, 76, 54, 123, 28, 95, 12, 09, 70, 231, 117, 156, 71, 45, 90 };
byte[] anahtar = System.Text.Encoding.ASCII.GetBytes(sifre);
string dosyacikis = Path.ChangeExtension(dosya, "rc2_desifre");
//deşifrelemye yardımcı olan CreateEncryptor sınıfımızı kullanıyoruz
ICryptoTransform dönüstür = rc2.CreateEncryptor(sifre, dizi);
//her .net cryptography uygulamamızda yaptığımız gibi filestream ile giriş ve çıkış dosya işlemlerimizi_
//gerçekleştirmek için tanımlamalarımızı yapıyoruz
FileStream giris = null;
FileStream cikis = null;
CryptoStream sifrele = null;
try
{
giris = new FileStream(dosya, FileMode.Open);
cikis = new FileStream(dosyacikis, FileMode.Create);
sifrele = new CryptoStream(cikis, transform,CryptoStreamMode.Write);
dinamikbaglantı(giris, sifrele); //*
}
finally
{
if (sifrele != null) sifrele.Close();
if (cikis != null) cikis.Close();
if (giris != null) giris.Close();
}
Console.WriteLine("File encrypted.");
}
}
}
Yukarıdaki yıldızla belirttiğim dinamikbaglanti tanımlamasına dikkat edin.Onuda kodlamamız içerisinde ayrıca yaratıyoruz.Şimdi devam edelim....
private static void dinamikbaglanti(Stream giris, Stream cikis)
//çıkış işlemlerinde CryptoStreamMode.Write,giriş işlemlemlerinde CryptoStreamMode.Read sınıfları görev alır.
//yeri geldiğinde onların tanımlamalarında,aşağıdaki gibi kullanırız.
//örn:crypto = new CryptoStream(cikis, dönüstür, CryptoStreamMode.Write);
{
const int boyut = 64 * 1024; //64k boyutunda yarattık.
byte[] buffer = new byte[boyut]; //yarattığımız dizi anahtara buffer atıyoruz.
int boyutoku = giris.Read(buffer, 0, boyut);
while (boyutoku > 0)
{
cikis.Write(buffer, 0, boyutoku);
boyutoku = giris.Read(buffer, 0, boyut);
}
}
Bu zaman kadarki makalelerim,örnekler ve uygulamar dışında bu makalemdede rc2 üzerinden deşifreleme uygulamasını uygun gördüm.
Her türlü soru ve görüşleriniz için batuhantosun@developermania.net adresine mail atabilirsiniz.
Saygı ve Sevgilerimle.Kolay Gelsin!!!