//Şifreleme yapmak için kullanılacak method
public static string Encrypted(this string stringToEncrypt, string key)
{
try
{
if (string.IsNullOrEmpty(stringToEncrypt))
throw new ArgumentException("Bos Metin Sifrelenemez");
if (string.IsNullOrEmpty(key))
throw new ArgumentException("Sifreleme Icin Anahtar Vermelisiniz");
CspParameters cspp = new CspParameters();
cspp.KeyContainerName = key;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspp);
rsa.PersistKeyInCsp = true;
byte[] bytes = rsa.Encrypt(UTF8Encoding.UTF8.GetBytes(stringToEncrypt), true);
return BitConverter.ToString(bytes);
}
catch (Exception)
{
throw new ArgumentException("Hata Olustu");
}
}
Örnek:
/// string metin = "My Secret";
/// string sifrelenmis = metin.Encrypt("sifreleyici");
/// string sifresicozulmus = sifrelenmis.Decrypt("sifreleyici");
// Deşifreleme yapmak için kullanılacak method
public static string Decrypt(this string stringToDecrypt, string key)
{
if (string.IsNullOrEmpty(stringToDecrypt))
throw new ArgumentException("Bos Olan Metnin Sifresi Cozulemez");
if (string.IsNullOrEmpty(key))
throw new ArgumentException("Sifre Cozme Icin Anahtar Vermelisiniz");
string result = null;
try
{
CspParameters cspp = new CspParameters();
cspp.KeyContainerName = key;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspp);
rsa.PersistKeyInCsp = true;
string[] decryptArray = stringToDecrypt.Split('-');
byte[] decryptByteArray = Array.ConvertAll<string, byte>(decryptArray, (s => Convert.ToByte(byte.Parse(s, NumberStyles.HexNumber))));
byte[] bytes = rsa.Decrypt(decryptByteArray, true);
result = UTF8Encoding.UTF8.GetString(bytes);
}
catch (Exception)
{
throw new ArgumentException("Hata Olustu");
}
return result;
}
Örnek:
/// string metin = "My Secret";
/// string sifrelenmis = metin.Encrypt("sifreleyici");
/// string sifresicozulmus = sifrelenmis.Decrypt("sifreleyici");
// Listeler üzerinde Foreach Yapan Extension Method
public static void ForEach<T>(this IEnumerable<T> kaynak, Action<T> islem)
{
foreach (var item in kaynak)
islem(item);
}
Örnek:
// List<string> isimler = new List<string> { "ali", "veli", "kirk", "dokuz", "elli" };
// isimler.ForEach(isim => MessageBox.Show(isim));
// İnternet Adresi Doğrulayan Extension Method
public static bool IsValidUrl(this string text)
{
Regex r = new Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
return r.IsMatch(text);
}
Örnek:
// string Adres = "http://www.ega.com.tr";
// bool AdresDogru = Adres.IsValidUrl();
//Email Adresi Doğrulayan Extension Method
public static bool IsValidEmail(this string text)
{
Regex r = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
return r.IsMatch(text);
}
Örnek:
// string adres="test@test.com";
// bool AdresDogru=adres.IsValidEmail();
// Klasör Oluşturan Extension Method
public static void CreateDirectory(this DirectoryInfo dirInfo)
{
if (dirInfo.Parent != null)
CreateDirectory(dirInfo.Parent);
if (!dirInfo.Exists)
dirInfo.Create();
}
Örnek:
// var dir=new DirectoryInfo(@"C:\temp\bir\iki\uc);
// dir.CreateDirectory();
// Tarihin Haftasonuna Geldiğini Doğrulayan Extension Method
public static bool IsWeekend(this DateTime value)
{
return (value.DayOfWeek == DayOfWeek.Sunday || value.DayOfWeek == DayOfWeek.Saturday);
}
Örnek:
// for(DateTime date=BaslangicTarih; date<= BitisTarih; date.AddDays(1))
// {
// if(date.IsWeekend())
// continue;
// Tarihten Yaş Hesaplayan Extension Method
public static int Age(this DateTime tarih)
{
DateTime now = DateTime.Now;
int yas = now.Year - tarih.Year;
if (now < tarih.AddYears(yas))
yas--;
return yas;
}
Örnek:
// DateTime FatihDogumGunu = new DateTime(1979, 05, 07);
// int Yas = FatihDogumGunu.Age();
// Ayın İlk Gününü Bulan Extension Method
public static DateTime FirstDayOfMonth(this DateTime date)
{
return new DateTime(date.Year, date.Month, 1);
}
Örnek:
// DateTime Simdi = DateTime.Now;
// MessageBox.Show("Ayın ilk günü: " + Simdi.FirstDayOfMonth().ToShortDateString());
// Ayın Son Gününü Bulan Extension Method
public static DateTime LastDayOfMonth(this DateTime date)
{
return new DateTime(DateTime.Now.Year, DateTime.Now.Month,1).AddMonths(1).AddDays(-1);
}
Örnek:
// DateTime Simdi= DateTime.Now;
// MessageBox.Show("Ayın son günü: " + Simdi.LastDayOfMonth().ToShortDateString());
// Dosyanın MD5 Değerini Hesaplayan Extension Method
public static string GetMD5(this string filename)
{
string result = string.Empty;
try
{
MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read,FileShare.ReadWrite);
byte[] arrByteHashValue = md5Provider.ComputeHash(fileStream);
fileStream.Close();
string hashData = BitConverter.ToString(arrByteHashValue).Replace("-", "");
result = hashData;
}
catch
{
}
return result.ToLower();
}
Örnek:
// string Dosya = @"C:\Temp\DosyaAdi.txt";
// MessageBox.Show(Dosya + " dosyasının MD5 değeri: " + Dosya.GetMD5());
Kaynak: http://www.enginpolat.com/