ForumTayfa  

Go Back   ForumTayfa > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama Bölümü > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama > Programlama

Programlama Programlama hakkında herşeyi paylaştığımız, soru ve sorunlarımızı tartıştığımız bölüm...

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 12.11.08, 00:32   #1 (permalink)
Deneyimli Tayfa
 
silentwolf - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: burada
Mesaj Sayısı: 3.964
Konu Sayısı: 157
Takım: Fenerbahçe
Rep Gücü: 196650
Rep Puanı: 19663395
Rep Derecesi : silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000silentwolf 0-10000000
Ruh Hali:

Standart .NET 'te Şifreleme Sınıflarını Kullanmak




.NET platformu, kriptografik işlemler için kullanılabilecek zengin sınıflar içerir. .NET Platformunda kriptografik sınıfların çoğu, Windows Cryptographic Service Providers (Windows kriptografik servis sağlayıcılar) için yönetilen bir pakettir.

Hash Algoritmalarını Kullanmak :

Bir hash algoritması, uzunluğu belli olmayan bir dizenin içeriğini benzersiz şekilde şifreleyerek bir değer üretir.Hash değerleri bir dosya içindeki değişiklikleri tespit etmek için kullanışlıdır. Dosyanın durumunun herhangi bir anda fotoğrafını çekme imkanı sunar. Bu Sayede bir önceki hash değerleri ile dosyanın o andaki hash değerlerini karşılaştırarak dosyada değişiklik yapılmışmı yapılmamışmı öğrenebilirsiniz.

.NET platformu içindeki sınıflar, aşağıdaki hash algoritmalarını kullanmaktadır.
  • MD5 - 128-bit hash değeri üretmektedir. MD5CryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • SAH1 - 160-bit hash değeri üretmektedir. SHA1CryptoServiceProvider ve SHA1Managed sınıfları tarafından uygulanmaktadır.
  • SHA256 - 256-bit hash değeri üretmektedir. SHA256CryptoServiceProvider ve SHA256Managed sınıfları tarafından uygulanmaktadır.
  • SHA384 - 384-bit hash değeri üretmektedir. SHA384CryptoServiceProvider ve SHA384Managed sınıfları tarafından uygulanmaktadır.
  • SHA512 - 512-bit hash değeri üretmektedir. SHA512CryptoServiceProvider ve SHA512Managed sınıfları tarafından uygulanmaktadır.
Not : MD5 en hızlı fakat en az güvenli algoritmadır. Her SHA algoritması daha güvenlidir ama daha falza hesaplama gerektirmektedir.
Örnek:

Kod:
static byte[] ByteDonustur(string deger)
        {
    char[] arrayChar = deger.ToCharArray();
    byte[] arrayByte = new byte[arrayChar.Length];
        
    for (int i = 0; i < arrayByte.Length - 1; i++)
    {
        arrayByte[i] =          Convert.ToByte(arrayChar[i]);
    }
        
    return arrayByte;
        }
        
        static void Main(string[] args)
        {
    MD5CryptoServiceProvider md5 = new          MD5CryptoServiceProvider();
    byte[] deger = ByteDonustur("ABCDEFG");
    byte[] sonuc = md5.ComputeHash(deger);
        
    Console.WriteLine(BitConverter.ToString(sonuc));
    Console.ReadLine();
        } 



İşleminden çıkan sonucun değeri.

Burada dikkat edilmesi gereken hususlara gelecek olursak ComputeHash() Metoduna bir dizeyi doğrudan geçiremezsiniz. ByteDonustur() Metodu kullanılarak dize ComputeHash() verilmeden önce byte dizisine dönüştürülmektedir.ComputeHash() metodu tarafından geri döndürülen byte dizisi BitConverter sınıfı ile dizeye geri dönüştürülmektedir.

SİMETRİK ŞİFRELEME ALGORİTMALARI

Bir veriyi simetrik bir veri algoritması ile şifrelediğinizde gönderici ve alıcının aynı şifre çözücü anahtara sahip olmak zorundadır.

.NET platformundaki sınıflar aşağıdaki simetrik algoritmaları desteklemektedir.
  • DES - Birleşik Devletler Veri Şifreleme Standartı (Data Encryption Standart) : Bu algoritma DESCryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • Triple DES - DES algoritması sıralı şekilde üç farklı şifreleme anahtarı ile uygulanır. Bu algoritma TripleDESCryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • RC2 - RC2 Blok Şifresi (Block Cipher). Bu algoritma RC2CryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • Rijndael - İleri Düzey Şifreleme Standartı tarafından kullanılan algoritmadır. Bu algoritma RijndaelManaged sınıfı tarafından uygulanmaktadır.
Örnek : SimetrikWrite.cs

Kod:
class SimetrikWrite
        {
    const string desKey = "12345678";
    const string desIv = "ABCDEFGH";
        
    static byte[] ByteDonustur(string deger)
    {
        char[] arrayChar =          deger.ToCharArray();
        byte[] arrayByte = new          byte[arrayChar.Length];
        
        for (int i = 0; i < arrayByte.Length;          i++)
        {
            arrayByte[i]          = Convert.ToByte(arrayChar[i]);
        }
        
        return arrayByte;
    }
        
    static void Main(string[] args)
    {
        byte[] arrayDESKey =          ByteDonustur(desKey);
        byte[] arrayDESIV =          ByteDonustur(desIv);
        byte[] arrayInput =          ByteDonustur("Merhaba Dünya");
        
        DESCryptoServiceProvider des = new          DESCryptoServiceProvider();
        
//Formun en üstünde desKey ve desIv         isimli iki tane sabit var. DESCryptoServiceProvider sınıfı ile veriyi         şifrelediğinizde hem gizli bir anahtar hem de bir ilk değer vektörü         sağlamalısınız çünkü yarattığınız dosyadaki şifreyi çözmek istediğinizde         ihtiyaç duyacaksınız. Bu dizilere istediğiniz 8 karakter dizesini         atayabilirsiniz.
        ICryptoTransform cEncryptor =          des.CreateEncryptor(arrayDESKey, arrayDESIV);
CryptoStream cStream = new         CryptoStream(new FileStream("c:\\simetrik.text", FileMode.Create,         FileAccess.Write),cEncryptor, CryptoStreamMode.Write);
                 cStream.Write(arrayInput,0,arrayInput.Length);
        cStream.Close();
        Console.ReadLine();
    }
        } 

Örnek : SimetrikRead.cs

Kod:
    class SimetrikRead
        {
    //Bu sabitlerin değeri SimetrikWriter Dosyasındaki desKey ve          desIv sabitleri ile uyuşmalıdır.
    const string desKey = "12345678";
    const string desIv = "ABCDEFGH";
        
    static byte[] ByteDonustur(string deger)
    {
        char[] arrayChar =          deger.ToCharArray();
        byte[] arrayByte = new          byte[arrayChar.Length];
        
        for (int i = 0; i < arrayByte.Length;          i++)
        {
            arrayByte[i]          = Convert.ToByte(arrayChar[i]);
        }
        
        return arrayByte;
    }
        
    static void Main(string[] args)
    {
        byte[] arrayDesKey =          ByteDonustur(desKey);
        byte[] arrayDesIv =          ByteDonustur(desIv);
        
        DESCryptoServiceProvider des = new          DESCryptoServiceProvider();
        ICryptoTransform cDecryptor =          des.CreateDecryptor(arrayDesKey,arrayDesIv);
CryptoStream cStream = new         CryptoStream(new FileStream("C:\\simetrik.text",         FileMode.Open),cDecryptor, CryptoStreamMode.Read);
        Console.WriteLine(new          StreamReader(cStream).ReadToEnd());
        Console.ReadLine();
    }
        }


ASİMETRİK ŞİFRELEME KULLANMAK

Simetrik şifreleme algoritması kullandığımız zaman, uygulamayı kullananların aynı ortak şifre çözücü anahtara sahip olmaları gerekir. Asimetrik şifreleme algoritması kullandığınız zaman veriyi şifrelemek ve çözmek için kullanılan anahtar farklıdır. Asimetrik şifreleme algoritmaları bir anahtar çifti kullanır. Eğer veriyi bir anahtar ile şifrelediyseniz çözmek için diğer anahtarı kullanırsınız.

.NET platformundaki sınıflar aşağıdaki asimetrik algoritmaları desteklemektedir.
  • DSA - Dijital İmza Algoritması(Digital Signature Algorithm - Birleşik Devletler Hükümetinin Dijital Doğrulama Standartı). DSACryptoServiceProvider sınıfı tarafından uygulanmaktadır.
  • RSA - Bu Algoritma, RSACryptoServiceProvider sınfı tarafından uygulanmaktadır.
Her iki metodta AsymmetricAlgorithm sınıfında uygulanmaktadır. Bu yüzden aynı metod ve özelliklerin bir çoğunu paylaşmaktadırlar. Sınıflardan herhangi birisini yaratırsanız, genel ve özel anahtarları otomatik olarak üretilir.Genel veya özel anahtara ToXmlString ya da ExportParameters metotları ile erişebilirsiniz. ToXmlString metodu, genel ve özel anahtarları XML dizesinde tutar.

Aşağıdaki örnekte DSACryptoServiceProvider sınıfını yaratıp özel ve genel anahtarlarını görüntülemektedir.


Kod:
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider();
        
        Console.Write("Özel Anahtarlar : ");
        //Özel Anahtarı Görüntülemek İçin true
        Console.WriteLine(dsa.ToXmlString(true));
        
        Console.Write("Genel Anahtarlar : ");
        //Genel Anahtarı Görüntülemek İçin false
        Console.WriteLine(dsa.ToXmlString(false)); 

İşlemin sonucunda aşağıdakine benzer bir çıktı üretecektir.

örn : AsimetrikWrite.cs

Kod:
 class AsimetrikWrite
        {
    static void Main(string[] args)
    { 
        byte[] dizi = {1,2,3,4,5,6,7};
        
        RSACryptoServiceProvider rsa = new          RSACryptoServiceProvider();
        byte[] sonucEncrypt =          rsa.Encrypt(dizi,false);
        
        for(int i = 0; i <          sonucEncrypt.Length; i++)
                     Console.Write(sonucEncrypt[i] + " ");
    }
        }

Çıktı Sonucu Aşağıdaki Gibi Olmalıdır.


Kod:
 class AsimetrikRead
        {
    static void Main(string[] args)
    { 
        byte[] dizi = {1,2,3,4,5,6,7};
        
        RSACryptoServiceProvider rsa = new          RSACryptoServiceProvider();
        byte[] sonucEncrypt =          rsa.Encrypt(dizi,false);
        
        for(int i = 0; i <          sonucEncrypt.Length; i++)
                     Console.Write(sonucEncrypt[i] + " ");
    
        Console.WriteLine("\n\n");
        
        byte[] sonucDecrypt =          rsa.Decrypt(sonucEncrypt,false);
        
        for(int i = 0; i <          sonucDecrypt.Length; i++)
                     Console.Write(sonucDecrypt[i] + " ");
        
        Console.ReadLine();
    }
        } 

Decrypt İşleminin Sonucu Aşağıdaki Gibi Olmalıdır.



[Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...]
[Sadece Kayıtlı Kullanıcılar Linkleri Görebilir.Kayıt Olmak İçin Tıklayınız...]


__________________
bir silahım olsaydı...




hiç bir farklılık ayrımcılığa neden olamaz.
Hürriyet Hürriyettir.

silentwolf isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Wiimote'u Lightsaber Olarak Kullanmak... sahandayumurta Tüm Oyunlar 0 28.09.08 03:15
Bu arabaların hangisini kullanmak istersiniz..? mAhMuT_91 Tuning 31 15.07.08 17:03
Mustang kullanmak... MaTRiX Motorlu Araçlar Dünyası 1 17.01.07 16:19
Winrar İle Dosya Şifreleme (Video) Shadow777 Resimli Program Anlatımı 1 06.01.07 17:14


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 05:55.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
User Alert System provided by Advanced User Tagging v3.0.6 (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 103 104 105 106 155 156 157 158 159 160 161 162 163 164 167 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271


ForumTayfa - Link Değişimi
Telinka İletişim | Voip Ürünleri | Link Değişimine Katılın |

Sitemiz bir forum sitesi olduğundan dolayı, kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. ForumTayfa Yöneticileri mesajları itina ile kontrol etse de, bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yine de sitemizde yasalara aykırı unsurlar bulursanız [email protected] email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.

Any member of our web site has the right of adding comments instantly without getting permisson due to the forum structure of our site basis. Althought, our site modarators check comments with care, all the responsibilities sourced from these comments directly belong to the members. If you still find any illegal content in our site ( A.buse, H.arassment, S.camming, H.acking, W.arez, C.rack, D.ivx, Mp.3 or any Illegal Activity ), please report us via [email protected] .Your reports will be evaluated as soon as the arrival of your e-mail.