Merhaba arkadaşlar, bugün sizlere C# ta herhangi bir teknolojide kullandığınız basit bir yazıyı nasıl şifreleyebileceğinizden bahsedeceğim.
Aşırı güvenlikli ve kırılamaz bir algoritma değil vereceğim şifreleme algoritması ama çok üst düzey bir şifreleme gerektirmeyen yerlerde rahatlıkla kullanabilirsiniz.
Şimdi il olarak projemize “PasswordCryptography” isminde bir sınıf ekliyoruz. İsim size kalmış ama eğer farklı bir isim kullanacaksanız aşağıda vereceğim kodu da sınıf ismini güncellemeniz gerekmektedir.
Oluşturduğumuz sınıfın namespace içine aşağıdaki kodu ekliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
class PasswordCryptography { private string password = "1"; private byte[] Sifrele(byte[] SifresizVeri, byte[] Key, byte[] IV) { MemoryStream ms = new MemoryStream(); Rijndael alg = Rijndael.Create(); alg.Key = Key; alg.IV = IV; CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(SifresizVeri, 0, SifresizVeri.Length); cs.Close(); byte[] sifrelenmisVeri = ms.ToArray(); return sifrelenmisVeri; } private byte[] SifreCoz(byte[] SifreliVeri, byte[] Key, byte[] IV) { MemoryStream ms = new MemoryStream(); Rijndael alg = Rijndael.Create(); alg.Key = Key; alg.IV = IV; CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(SifreliVeri, 0, SifreliVeri.Length); cs.Close(); byte[] SifresiCozulmusVeri = ms.ToArray(); return SifresiCozulmusVeri; } public string TextSifrele(string sifrelenecekMetin) { byte[] sifrelenecekByteDizisi = Encoding.UTF8.GetBytes(sifrelenecekMetin); PasswordDeriveBytes pdb = new PasswordDeriveBytes(password, new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}); byte[] SifrelenmisVeri = Sifrele(sifrelenecekByteDizisi, pdb.GetBytes(32), pdb.GetBytes(16)); return Convert.ToBase64String(SifrelenmisVeri); } public string TextSifreCoz(string text) { text = text.Replace(" ", "+"); int mod4 = text.Length % 4; if (mod4 > 0) { text += new string('=', 4 - mod4); } byte[] SifrelenmisByteDizisi = Convert.FromBase64String(text); PasswordDeriveBytes pdb = new PasswordDeriveBytes(password, new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}); byte[] SifresiCozulmusVeri = SifreCoz(SifrelenmisByteDizisi, pdb.GetBytes(32), pdb.GetBytes(16)); return Encoding.UTF8.GetString(SifresiCozulmusVeri); } } |
Yukarıdaki sınıfı hatasız şekilde ekledikten sonra kullanmak istediğimiz herhangi bir yerde bu sınıfı çağırarak string ifademizi şifreleyebilir, bu algoritma ile şifrelenmiş kodu tekrar şifresini çözebiliriz.
Şifreleme yapmak istediğimiz yerde de aşağıdaki gibi kullanabiliriz.
1 2 3 |
PasswordCryptography passwordCryptography = new PasswordCryptography(); passwordCryptography.TextSifrele("Şifrelenecek String"); //Şifreleme Metodu passwordCryptography.TextSifreCoz("Şifrelenmiş String"); //Şifre Çözme Metodu |
cok sukela bir makale olmus !