Asp.Net Url Şifrelemek
-
Merhaba hocalar,
Asp.net de querystring ile veri gönderirken url kısmında verilerin id numaraları gözükür ya ben onalrı şifrelemek ya da gizlemek istiyorum. Daha basit anlatmak gerikirse;


Bu resimlerdeki gibi id numaralarını şifrelemek istiyorum.
Google amcadan aradıp bir iki şey buldum ama tam anlamadım. Bu konu hakkında bilgisi olur yardım ederse çok sevinirim.
Şimdiden teşekkürler...
-
ID datasını DB de "Uniqueidentifier" olarak tut.
-
oluşturduğun querystring'i AES ile şifrele. Arından querystring okuyayacağın zamanda şifrelerken kullandığın key ile decrypte ederek query stringi rahatça okuyabilirsin.
-
md5 ile şifreleyebilirsin ya
-
Server.Transfer("UrlAdresi");
:)
-
efecan123 bunu yazdı
md5 ile şifreleyebilirsin ya
geri dönüşümsüz olduğu için işe yaramaz.
-
Routeconfig
-
ben intranette guvenlik onlemi olarak yapmistim bunu,
yalniz soyle bir durum var her session da cikan sonuc farkli oldugu icin public webde kullanmak icin uygun degil.
anahtar olarak kullaniciya ozel birsey kullanmistim sanirim oraya sabit bir anahtar koyarsan bahsettigim sorun cozulur. eve gidince atarim.
-
efecan123 bunu yazdı
md5 ile şifreleyebilirsin ya
http://www.cyber-warrior.org/Forum/aspnet-url-sifrelemecode-hunters-2_486454,0.cwx
su linkte anlatılanları yaptım ama adam sadece <a href> ile listemiş veritabanı ben blogumu yaptıüım için datalist içinde çok fazla veri var. Hyperlink ile yönlendiriyorum blog detay sayfasına. Bu anlatılanları nasıl hyperlinke aktarcaz onu bulamadım.
Datalistin findcontrol olayı ile hyperliniki yakalıyorum ama sora querystring veremiyorum. Yane yine cıkmaz sokağa girdim.
-
şu şifreleme için kullanacağın class
public static class StringHelper { public static string Sifrele(this string strQueryStringParameter) { MD5CryptoServiceProvider hash_func = new MD5CryptoServiceProvider(); byte[] key = hash_func.ComputeHash(Encoding.ASCII.GetBytes("Anahtar1")); byte[] IV = new byte[8]; SHA1CryptoServiceProvider sha_func = new SHA1CryptoServiceProvider(); byte[] temp = sha_func.ComputeHash(Encoding.ASCII.GetBytes("Anahtar2")); for (int i = 0; i < 8; i++) IV[i] = temp[i]; byte[] toenc = System.Text.Encoding.UTF8.GetBytes(strQueryStringParameter); TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); des.KeySize = 192; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write); cs.Write(toenc, 0, toenc.Length); cs.FlushFinalBlock(); return Convert.ToBase64String(Encoding.UTF8.GetBytes(Convert.ToBase64String(ms.ToArray()))); } public static string SifreCoz(this string strQueryStringParameter) { MD5CryptoServiceProvider hash_func = new MD5CryptoServiceProvider(); byte[] key = hash_func.ComputeHash(Encoding.ASCII.GetBytes("Anahtar1")); byte[] IV = new byte[8]; SHA1CryptoServiceProvider sha_func = new SHA1CryptoServiceProvider(); byte[] temp = sha_func.ComputeHash(Encoding.ASCII.GetBytes("Anahtar2")); for (int i = 0; i < 8; i++) IV[i] = temp[i]; byte[] todec = Convert.FromBase64String(Encoding.UTF8.GetString(Convert.FromBase64String(strQueryStringParameter))); TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); des.KeySize = 192; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write); cs.Write(todec, 0, todec.Length); cs.FlushFinalBlock(); return System.Text.Encoding.UTF8.GetString(ms.ToArray()); } }bir stringi sifrelemek için örneğin:
string a = "veri";
a.Sifrele() fonksiyonu sifrelenmiş veriyi, a.SifreCoz() fonksiyonu da çözülmüş halini getirir.
linkleri repeaterla filan dolduruyorsan eğer kullanıdığın collection veya dataset içindeki veriyi foreach ile şifreleyip öyle basarsan istediğini yaparsın sanırım.
ekleme: Anahtar yazan yerlere şifreleme ve çözmede kullanağın keyi yazacaksın.
anahtar olarak SessionID kullanırsan oluşturulan şifreler o oturum için özel olur ve link kopyalansa dahi başka bir bilgisayarda çalışmaz. Hatta aynı bilgisayardaki farklı tarayıcılarda da aynı durum.
edit: user identityler kalmış, kodu düzenledim.
KodlayanAdam tarafından 01/Şub/13 21:59 tarihinde düzenlenmiştir -
Saolasın hocam hallettim blog detay sayfasına yönlendiriken hata veriyor ama onu düzeltebilirim sanırsam. Çok teşekkürler.
