C# üzerinde string Crypt ve DeCrpyt İşlemleri

Merhabalar, bu sefer ki konumuz yazılımsal tarafta tarafımıza düşen güvenlik üzerine.

Herkes yaptığı iş açısından yazılımsal olarak güvenliği göz önünde bulundurmak zorundadır. Her ne kadar istemesek de olağan dışı durumları göz önünde bulundurarak kullanıcılarımızın bazı bilgilerini şifrelememiz gerekmektedir. Örneğin bir sistemimiz üzerinde kullanıcı kaydı varsa alacağımız bilgiler içerisinden en basitin kullanıcının parolasını şifrelememiz gerekmektedir.

Fazla konuyu uzatmadan direkt olarak giriş yapmak istiyorum.

Bizim burada kullanacağımız 2 metodumuz var. Bu metodlar dışarıda bir string parametre almakta olup, tekrar geri string bir değer döndürmektedir.

Bunlardan birincisi EnCryptIt (şifreleyici) metodumuzdur.


public static string EnCryptIt(string toEnrypt)

{

if (!string.IsNullOrEmpty(toEnrypt))

{

byte[] data = System.Text.ASCIIEncoding.ASCII.GetBytes(toEnrypt);

byte[] rgbKey = System.Text.ASCIIEncoding.ASCII.GetBytes("01010101"); //buradaki string parametreler sizin crypto keyini’niz.

byte[] rgbIV = System.Text.ASCIIEncoding.ASCII.GetBytes("02020202"); //buradaki string parametreler sizin crypto value’nuz.

 

//1024-bit encryption

MemoryStream memoryStream = new MemoryStream(1024);

DESCryptoServiceProvider desCryptoServiceProvider = new DESCryptoServiceProvider();

 

CryptoStream cryptoStream = new CryptoStream(memoryStream,

desCryptoServiceProvider.CreateEncryptor(rgbKey, rgbIV),

CryptoStreamMode.Write);

 

cryptoStream.Write(data, 0, data.Length);

cryptoStream.FlushFinalBlock();

 

byte[] result = new byte[(int)memoryStream.Position];

memoryStream.Position = 0;

memoryStream.Read(result, 0, result.Length);

 

cryptoStream.Close();

return System.Convert.ToBase64String(result);

}

return "";

}

Üstte ki metodumuzda bulunan byte[] rgbKey değişkenimiz cryptonun hangi key üzerinden hangi value’ya göre cryptolanacağı üzerinedir. İki değer alır ve sadece bu iki değere göre tekrardan çözülebilir.

Şimdi de DeCryptIt metodumuza bakalım.


public static string DecryptIt(string toDecrypt)

{

string decrypted = string.Empty;

if (!string.IsNullOrEmpty(toDecrypt))

{

try

{

byte[] data = System.Convert.FromBase64String(toDecrypt);

byte[] rgbKey = System.Text.ASCIIEncoding.ASCII.GetBytes("01010101");

byte[] rgbIV = System.Text.ASCIIEncoding.ASCII.GetBytes("02020202");

 

MemoryStream memoryStream = new MemoryStream(data.Length);

 

DESCryptoServiceProvider desCryptoServiceProvider = new DESCryptoServiceProvider();

 

CryptoStream cryptoStream = new CryptoStream(memoryStream,

desCryptoServiceProvider.CreateDecryptor(rgbKey, rgbIV),

CryptoStreamMode.Read);

 

memoryStream.Write(data, 0, data.Length);

memoryStream.Position = 0;

 

decrypted = new StreamReader(cryptoStream).ReadToEnd();

 

cryptoStream.Close();

}

catch (CryptographicException ex)

{

throw ex;

}

}

return decrypted;

}

Burada da tekrar alacağı değerler üzerinden bize stringimizi geri vermektedir. Bu metodlar üzerinden kendi key ve value’nuzu vererek istediğiniz şifrelemeyi oluşturabilirsiniz.

Bol kodlu günler dilerim.

İyi çalışmalar

4,308 total views, 2 views today

No Comments

Leave a Comment

Ulaşım için: Facebook: /ganigani Twitter: @abdulgani_demir


*

%d blogcu bunu beğendi: