PDA

View Full Version : هش کردن پسورد سمت کلاینت



Vahid Faraji
دوشنبه 08 شهریور 1389, 23:35 عصر
سلام.
كدي رو بررسي مي كردم كه اومده بود با submit فرم اين كار رو انجام مي داد:


document.getElementById('txtPass').value = Hash(document.getElementById('txtPass').value + document.getElementById('hidKey').value);

Hash يك تابع كه خودش نوشته بود، كاري با اون نداريم.

يعني پسوردو هر بار با مقدار يك ورودي از نوع hidden با runat=server هش مي كرد.


<input id="hidkey" type="hidden" name="Hidden1" runat="server">
به طور مثال وقتي بر روي دكمه ارسال كليك مي كرديم، اين اتفاق مي افتاد:


protected void Page_Load(object sender, System.EventArgs e)
{
script = "";
if(!IsPostBack)
hidkey.Value = createRandom(); //createRandom: for random value()
}


protected void cmdLogin_Click(object sender, System.EventArgs e)
{
//login code
UserSystem busUser = new UserSystem();

if ( busUser.Authenticate(txtUserName.Text,txtPass.Text ,hidkey.Value) )
{
//...
}
else
{
//...
}

}

سوال من اينجاست، نقش hidkey در هش كردن سمت كلاينت چيست، مگه مقدارش خالي نيست، درسته تو Page_Load مقدار مي گيره، ولي اون جا كه سمت كلاينت هش انجام مي شه، مقداري نداره كه، از دوستان خواهش مي كنم توضيح بدن.

aminghaderi
سه شنبه 09 شهریور 1389, 02:14 صبح
حالا منم یه سولی واسم پیش می یاد ، که شما اگه خودتون این کد رو ننوشتید ، چطور از رویداد کلیک سمت سرور باتن اطلاع دارید؟؟؟؟
اگه می خواین باگ کد گرفته بشه ؟! خوب بگید ، تا کمک کنیم.:ناراحت:

Vahid Faraji
سه شنبه 09 شهریور 1389, 09:43 صبح
حالا منم یه سولی واسم پیش می یاد ، که شما اگه خودتون این کد رو ننوشتید ، چطور از رویداد کلیک سمت سرور باتن اطلاع دارید؟؟؟؟
اگه می خواین باگ کد گرفته بشه ؟! خوب بگید ، تا کمک کنیم.:ناراحت:

من نمي فهمم شما منظورت چيه؟ مگه مهمه كه كدو من نوشتم يا نه، مشخصه كه من ننوشتم. شما اگه به همچين كدي برخوردين و از مفهومش اطلاع داريد، راهنمايي كنيد مشكل حل شه.
بازم به خاطر وقتي كه گذاشتيد، ممنون.

Vahid Faraji
سه شنبه 09 شهریور 1389, 19:50 عصر
یعنی هیچ کس نیست این کد ما رو بررسی کنه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Himalaya
سه شنبه 09 شهریور 1389, 21:23 عصر
سوال من اينجاست، نقش hidkey در هش كردن سمت كلاينت چيست، مگه مقدارش خالي نيست، درسته تو Page_Load مقدار مي گيره، ولي اون جا كه سمت كلاينت هش انجام مي شه، مقداري نداره كه

نه که خالی نیست. یه تست میکردی میدیدی که مقدار داره. مثلا با کد زیر



protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
hidkey.Value = createRandom();
}
private string createRandom()
{
Random Rnd = new Random(DateTime.Now.Millisecond);
return Rnd.Next(100, 1000).ToString();
}

که بعدش اگه سورس رو ببینی میشه این


<input name="hidkey" type="hidden" id="hidkey" value="462" />

میبینی که value مقدار داره
اما در مورد این که


نقش hidkey در هش كردن سمت كلاينت چيست

خودت گفتی که


Hash يك تابع كه خودش نوشته بود، كاري با اون نداريم
بالاخره میخوای باهاش کار داشته باشی یا نه :بامزه:
واسه جواب به این سوالت باید تابع Hash رو که تو کدای جاوا نوشته و از hidkey توی اون تابع استفاده کرده دید.


document.getElementById('txtPass').value = Hash(document.getElementById('txtPass').value + document.getElementById('hidKey').value);

Vahid Faraji
چهارشنبه 10 شهریور 1389, 15:04 عصر
نه که خالی نیست. یه تست میکردی میدیدی که مقدار داره. مثلا با کد زیر



protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
hidkey.Value = createRandom();
}
private string createRandom()
{
Random Rnd = new Random(DateTime.Now.Millisecond);
return Rnd.Next(100, 1000).ToString();
}

که بعدش اگه سورس رو ببینی میشه این


<input name="hidkey" type="hidden" id="hidkey" value="462" />

میبینی که value مقدار داره
اما در مورد این که

خودت گفتی که

بالاخره میخوای باهاش کار داشته باشی یا نه :بامزه:
واسه جواب به این سوالت باید تابع Hash رو که تو کدای جاوا نوشته و از hidkey توی اون تابع استفاده کرده دید.


document.getElementById('txtPass').value = Hash(document.getElementById('txtPass').value + document.getElementById('hidKey').value);


ممنون از شما. من متوجه اشتباه خودم شدم. من به یه نکته ای توجه نکرده بودم.
موفق باشید.