PDA

View Full Version : سوال: چگونه مقدار textbox را کنترل کنیم؟



milade
یک شنبه 12 خرداد 1387, 21:58 عصر
سلام
می خوام مقدار یه text رو کنترل کنم یعنی بدونم حتما از @ برای ایمیل استفاده کرده
و اونم یکی نه دوتا

راستی یه رمز نگاری رو با یه مثال معرفی کنید تا برای کد کردن پسوردها اونم به طور قابل بازگشت(برای فراموش کردنش)بتونم استفاده کنم
ممنون

twelve
یک شنبه 12 خرداد 1387, 22:05 عصر
از Regex استفاده کن ، واسه رمز نگاری هم در مورد ذخیره پسوورد با الگوریتم های md5 ، sha1 مطلب زیاده با جستجو به نتیجه میرسی

milade
یک شنبه 12 خرداد 1387, 22:07 عصر
می شه در مورد regex توضیح بدی ؟
یه مثال بزنی ممنون می شم

milade
سه شنبه 14 خرداد 1387, 21:05 عصر
کسی جواب نمیده

Behrouz_Rad
سه شنبه 14 خرداد 1387, 21:12 عصر
برای ایمیل می تونی از RegEx ذیل استفاده کنی.


([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})

اگر با RegEx و نحوه ی استفاده از اون در دات نت آشنا نیستی از گوگل کمک بگیر.

ضمن اینکه هر سوال رو باید در یک تاپیک مجزا مطرح کنی.

موفق باشید.

محمدامین شریفی
چهارشنبه 15 خرداد 1387, 10:27 صبح
برای قسمت اول پرسشت همان طور که دوستان گفتند از قواعد regular expression که می تونی در قسمت validation asp.net کنترلش را برداری و به textbox مقیدش کنی.در ظمن اگه می خوای بدونی که درون جعبه متن email معتبری نوشته در properties هاش به صورت آماده داره

milade
چهارشنبه 15 خرداد 1387, 10:50 صبح
می شه بگی کدوم قسمتش؟

محمدامین شریفی
چهارشنبه 15 خرداد 1387, 11:16 صبح
می شه بگی کدوم قسمتش؟
18627
پیروز و شادکام باشی داداشی

محمدامین شریفی
چهارشنبه 15 خرداد 1387, 11:21 صبح
اگه نمی خوای از رمز نگاری hashing استفاده کنی!
خواصیت textmode جعبه متن رو password کن.

mahdi_farhani
جمعه 17 خرداد 1387, 15:24 عصر
واسه رمز نگاری هم در مورد ذخیره پسوورد با الگوریتم های md5 ، sha1 مطلب زیاده با جستجو به نتیجه میرسی
md5 , sha1 قابل بازگشت نیست

اگه نمی خوای از رمز نگاری hashing استفاده کنی!
خواصیت textmode جعبه متن رو password کن.
hahsing هیچ ربطی به Textmode نداره ، بحث این دوستمون در مورد Forgetpassword هست...
----------------------------------------
از الگوریتم 3Desc استفاده کن


public string Encrypt(string strValue)
{
byte[] IV = new byte[8] { 130, 24, 73, 117, 95, 241, 53, 100 };
string cryptoKey = @" MahdiFarhani6487345767Barnamenevis.orgKey%$^ ";
byte[] codeBytes = System.Text.Encoding.ASCII.GetBytes(strValue);
TripleDESCryptoServiceProvider tripleDesc = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
tripleDesc.Key = md5.ComputeHash(System.Text.Encoding.ASCII.GetByte s(cryptoKey));
tripleDesc.IV = IV;
byte[] codeBuffer = tripleDesc.CreateEncryptor().TransformFinalBlock(c odeBytes, 0, codeBytes.Length);
return Convert.ToBase64String(codeBuffer, 0, codeBuffer.Length);
}

public string Decrypt(string value)
{
try
{
byte[] queryBytes = Convert.FromBase64String(value);
string query = System.Text.Encoding.ASCII.GetString(queryBytes, 0, queryBytes.Length);
byte[] codeBuffer = Convert.FromBase64String(value);
byte[] IV = new byte[8] { 130, 24, 73, 117, 95, 241, 53, 100 };
string cryptoKey = @" MahdiFarhani6487345767Barnamenevis.orgKey%$^ ";
TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

tripleDES.Key = md5.ComputeHash(System.Text.Encoding.ASCII.GetByte s(cryptoKey));
tripleDES.IV = IV;
byte[] codebytes = tripleDES.CreateDecryptor().TransformFinalBlock(co deBuffer, 0, codeBuffer.Length);
return System.Text.Encoding.ASCII.GetString(codebytes, 0, codebytes.Length);
}
catch
{
throw new Exception("Bad Code");
}

}

twelve
جمعه 17 خرداد 1387, 22:38 عصر
md5 , sha1 قابل بازگشت نیست

درسته ، اما میتونن برای کسانی که پسوورد رو فراموش کردند ، پسوورد جدید بسازن و مثلا به ایمیلشون بفرستن ، این امنیت بیشتری داره.

mahdi_farhani
جمعه 17 خرداد 1387, 23:05 عصر
فکر نکنم از نظر امنیتی زیاد تفاوتی داشته باشه .
تو روش اول که می خواهیم از الگوریتم استفاده کنیم که قابل بازگشت باشه ، که در این صورت کلمه عبور به ایمیل کاربر فرستاده میشه ، که طی این مراحل Forget Password یا سوال امنیتی داره یا نداره . اگر داشته باشه از نظر امنیتی بهتره و اگر نداشته باشه مستقیم به ایمیل کاربر فرستاده میشه . و در صورت هک شدن ایمیل میتونه از اشتراکش استفاده کنه
در روش دوم هم به همین صورت هست ، با این تقاوت که تا وقتی با کلمه عبور ریست شده لاگین نکرده نباید پسورد قبلی از بین بره ، چون احتمال داره یکی دوست داشته شیطونی کنه . در ضمن در این روش هم در صورت هک شدن ایمیل اشتراکش از دست رفته .
پس به نظر من هیچ تفاوتی بین این دو روش از نظر امنیتی نمیکنه .( شاید هم تفاوت داشته باشه من خبر نداشته باشم )

jaza_sa
دوشنبه 03 تیر 1387, 21:16 عصر
میتونید از Validator ها استفاده کنید.
این کنترل ها به شما این امکان رو میدن تا بتونید به راحتی مقادیر کنترل های ورودی رو چک کنید. و درصورت بروز خطا به کاربر اخطار بده.

برای اینکه دقیقتر گفته باشم ، باید از RegularExpressionValidator استفاده کنید و مقدار ValidationExpression اون رو از نوع Internet e-mail address انتخاب کنید
و یا مستقیما این عبارت رو درج کنید

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*و اما عملکرد آن:
این نوع کنترل ها بصورت Run-Time کد JavaScript تولید میکنن و با استفاده از این کدها مقادیر کنترل های ورودی رو بررسی می کنند.
جالب که بدونید، تکنیکی که در این مدل Validator ها استفاده میشه Regular Expression Validator نامیده میشه و جالب تر از اون اینکه
اگر دو نفر در یک شرکت شروع به تولید چنین کدی برای یک هدف خاص داشته باشن ، پس از پایان کار ، هر دو نفر دو کد مختلف تولید کرده اند و هیچ کدوم از اونها نمیفمن که دیگری چی نوشته :لبخند:

Behrouz_Rad
دوشنبه 03 تیر 1387, 21:26 عصر
اگر دو نفر در یک شرکت شروع به تولید چنین کدی برای یک هدف خاص داشته باشن ، پس از پایان کار ، هر دو نفر دو کد مختلف تولید کرده اند و هیچ کدوم از اونها نمیفمن که دیگری چی نوشته

کی همچین حرفی زده؟ شما یک کد RegEx به بنده بده تا به راحتی بهت بگم که چکار می کنه :)

محمدامین شریفی
دوشنبه 03 تیر 1387, 22:19 عصر
آقای راد درست میگه لطفا اطلاعات غلط ندید.
امروزه برای همه چیز از نامگزاری گرفته تا رمز نگاری قانونی گزاشته اند. و شرکت هایی که برای خودشان قواعدی دارند با درست کردن مستندات آنرا برای تیم خود معنا دار می کنند.
درباره ی Regex هم کمیته هایی برای مدون کردن قوانین وجود دارد
این جستجو (http://www.google.com/search?client=opera&rls=en&q=regular+expression&sourceid=opera&ie=utf-8&oe=utf-8) را ببینید