View Full Version : سوال: ذخیره پسورد
vahid_d_0101
دوشنبه 25 شهریور 1387, 15:11 عصر
برای تاپیک سرچ کردم و به نتیجه هایی رسیدم ولی میخوام ببینم راه دیگری هست یانه!!
ببینید برای فکر کنید من یه برنامه دارم که میخوام کاربر بتونه پسورد ورودش را عوض کنه برای این کار میتون از بانک اطلاعاتی استفاده کنم، از ریجستری هم میتونم استفاده کنم ولی مشکل ریجستری اینه که اگر یوزر کاربر Limited باشه اون وقت نمیشه پسورد را تو ریجستری ذخیره کرد یه روش دیگه هم میشه که یه فایل درست کنم و پسورد رو تو اون قرار بدم و یه جایی ذخیرش کنم که این اصلا امنیت نداره
میخوام ببینم به غیر از دو سه روش بالا روش دیگری وجو داره یا نه؟ :متفکر::متفکر:
r0ot$harp
دوشنبه 25 شهریور 1387, 16:06 عصر
برای تاپیک سرچ کردم و به نتیجه هایی رسیدم ولی میخوام ببینم راه دیگری هست یانه!!
ببینید برای فکر کنید من یه برنامه دارم که میخوام کاربر بتونه پسورد ورودش را عوض کنه برای این کار میتون از بانک اطلاعاتی استفاده کنم، از ریجستری هم میتونم استفاده کنم ولی مشکل ریجستری اینه که اگر یوزر کاربر Limited باشه اون وقت نمیشه پسورد را تو ریجستری ذخیره کرد یه روش دیگه هم میشه که یه فایل درست کنم و پسورد رو تو اون قرار بدم و یه جایی ذخیرش کنم که این اصلا امنیت نداره
میخوام ببینم به غیر از دو سه روش بالا روش دیگری وجو داره یا نه؟ :متفکر::متفکر:
استفاده از بانک که زیاد امنیت نداره ولی این وسط یه چیز میاد به نام کد کذاری داده ها . به نظره من یه الگوریتم بنویس واسه کد کردن رشته ها . بعد اونو تو بانک یا هرجایی که دوست داره ذخیره کن .
باتشکر احسان
sohrab o
دوشنبه 25 شهریور 1387, 16:10 عصر
یه فایل در نظر بگیری و اطلاعات رو بصورت کد شده در اون ذخیره کنی.اینم یه نمونه
Private Function PasswordId(str As String) As Long
On Error GoTo Endfunction
Dim i, j, X, Y, k As Long
X = 0
Y = 0
j = 1
k = Len(str)
For i = 1 To k / 2
X = X + Asc(Mid(str, j, 1))
j = j + 2
Next i
j = 2
For i = 1 To k / 2
Y = Y + Asc(Mid(str, j, 1))
j = j + 2
Next i
PasswordId = Y * (X + Len(str))
If PasswordId = 0 Then PasswordId = Asc(Text1.Text) + 12
Exit Function
Endfunction:
MsgBox Err.Description
Resume Next
End Function
xxxxx_xxxxx
دوشنبه 25 شهریور 1387, 18:34 عصر
وحید جان هیچ کدوم از این راه هایی که گفتی امنیت نداره. در واقع امنیت رو خود برنامه نویس باید به وجود بیاره.
روش دوم به همون دلیلی که خودت گفتی رد میشه.
می مونه روش اول و سوم. که من روش اول رو پیشنهاد می کنم یعنی ذخیره پسورد در بانک. که این هم شرایطی داره:
1- گذاشتن پسورد مطمئن (مشکل) برای بانک.
2- encode کردن پسورد برای ذخیرش تو بانک.
3- فیلد پسورد اسمش تابلو نباشه.
روش سوم (ذخیره تو فایل) و شرایط این کار:
1- encode کردن طولانی پسورد
2- چک کردن وجود فایل در ابتدای شروع برنامه. ( نه تنها در ابتدا بلکه در چندین قسمت از برنامه)
3- فایل موردنظر حدالامکان در دسترس کاربر نباشه.
4- فایل مورد نظر تنها شامل encode شده پسورد نباشه (منظور: شما یه فایل jpg به صورت متن باز کن و محل ذخیره سازی پسوردو توش یه جایی اون وسط ها انتخاب کن. این فقط یه مثال بود)
یه چیز مهم که شامل هر دو میشه این که برای ورود و تغییر پسورد هیچ وقت پسورد ذخیره شده در بانک یا فایل رو جهت مقایسه با پسورد کاربر decode نکن.
اینا چیزایی بود که به ذهنم رسید. امیدوارم مفید باشه.
موفق باشی.
vahid_d_0101
دوشنبه 25 شهریور 1387, 22:36 عصر
بچه ها برنامه اون قدرها هم مهم نیست فقط شما یه نمونه بزارید که بتونه بانک اکسس پسورد دارو باز کنه و پسورد رو دیکد و اینکد کنه بسه دیگه نمیخواد زیاد روی اینکد و دیکد نمیخواد گیر بدید
r0ot$harp
دوشنبه 25 شهریور 1387, 22:47 عصر
بچه ها برنامه اون قدرها هم مهم نیست فقط شما یه نمونه بزارید که بتونه بانک اکسس پسورد دارو باز کنه و پسورد رو دیکد و اینکد کنه بسه دیگه نمیخواد زیاد روی اینکد و دیکد نمیخواد گیر بدید
دوست عزیز این مسائل رو شوخی نگیر .
بهتره دنبال نمونه نباشی و بری دنبال الگوریتم های کد گذاری و یه دونه خودت برای برنامت طراحی کنی .
اگر الان این برنامه رو نوشتی فردا یه برنامه می نویسی که می خوای بفروشی اون موقع هم واست مهم نیست ؟
باتشکر احسان
vahid_d_0101
دوشنبه 25 شهریور 1387, 22:58 عصر
اقا ما هر کاری بکنیم برنامه میشه کرک کنن (نمیخوام اینجا هم این بحث را شروع کنم ) ولی من 25 تا برنامه نوشتم الان که من بالای سر کاربرا هستم فقط محض احتیاط باید برای همشون رمز بزارم تا وقتی میرم به سوال یکی دیگه جواب بدم یکی از کاربرها نتونه جواب سوال رو ببینه
(اخه من جواب سوالارو تو برنامه گذاشتم و وقتی کار تموم شد جواب هارو نشون میدم میخوام یه پسورد بزارم محض احتیاط البته میخوام پسورد هم یه وقت هایی تغییر بدم)
r0ot$harp
دوشنبه 25 شهریور 1387, 23:10 عصر
اقا ما هر کاری بکنیم برنامه میشه کرک کنن (نمیخوام اینجا هم این بحث را شروع کنم ) ولی من 25 تا برنامه نوشتم الان که من بالای سر کاربرا هستم فقط محض احتیاط باید برای همشون رمز بزارم تا وقتی میرم به سوال یکی دیگه جواب بدم یکی از کاربرها نتونه جواب سوال رو ببینه
(اخه من جواب سوالارو تو برنامه گذاشتم و وقتی کار تموم شد جواب هارو نشون میدم میخوام یه پسورد بزارم محض احتیاط البته میخوام پسورد هم یه وقت هایی تغییر بدم)
وحید جان اگر مشکلی نیست و مانعی وجود نداره واسه گفتن توضیحی در مورد برنامت لطفا یه توضیح مختصری ذکر کنید تا بتونیم با هم یه راه حل خوبی پیدا کنیم .
باتشکر احسان
vahid_d_0101
دوشنبه 25 شهریور 1387, 23:18 عصر
ببینید من 25 تا نرم افزار دارم برای حل مسائل مشکل ریاضی که برای مثال تو یه نمونش ثابت میکنیم که 63 و 64 و 65 باهم برابر هستند یا این که با ریاضی ذهن میخونیم حالا میخواهیم قبل از این که به کاربر جواب رو بدیم اول کاربر خودش رو اون قضیه ها فکر کنه وببینه میتونه حل کنه یا نه ( برای حل کردن هم نیازی نیست قلم کاغذ برداره تو خود برنماه جایی برای حل مسئله هست) و بعد ما با زدن پسورد اون کاری را که خودمون میخواهیم انجام میدیم و مسئله خودش برای کاربر حل میشه و توضیح میده همین.
r0ot$harp
دوشنبه 25 شهریور 1387, 23:23 عصر
ببینید من 25 تا نرم افزار دارم برای حل مسائل مشکل ریاضی که برای مثال تو یه نمونش ثابت میکنیم که 63 و 64 و 65 باهم برابر هستند یا این که با ریاضی ذهن میخونیم حالا میخواهیم قبل از این که به کاربر جواب رو بدیم اول کاربر خودش رو اون قضیه ها فکر کنه وببینه میتونه حل کنه یا نه ( برای حل کردن هم نیازی نیست قلم کاغذ برداره تو خود برنماه جایی برای حل مسئله هست) و بعد ما با زدن پسورد اون کاری را که خودمون میخواهیم انجام میدیم و مسئله خودش برای کاربر حل میشه و توضیح میده همین.
دوست عزیز فکر می کنی شاگردات اونقدر باهوش هستن و به علم هکینگ و کرکینگ آگاه هستند که اگر پسورد رو به طوره عادی در یک فایل در یک جایی ذخیره کنید بفهمن ؟
باتشکر احسان
vahid_d_0101
دوشنبه 25 شهریور 1387, 23:25 عصر
نه نمیتونن ولی همین جوری هم نمیشه اونو یه جا بریزیم اگه میشه پسورد رو دیکد کنیم و تو یه فایل تکست کپی کنیم و یه جایی بریزیم با یه نامی که تابلو نباشه خوبه.
r0ot$harp
دوشنبه 25 شهریور 1387, 23:40 عصر
نه نمیتونن ولی همین جوری هم نمیشه اونو یه جا بریزیم اگه میشه پسورد رو دیکد کنیم و تو یه فایل تکست کپی کنیم و یه جایی بریزیم با یه نامی که تابلو نباشه خوبه.
وحید جان امشب خیلی کار دارم ولی فردا واست یه نمونه خوب می زارم .
راستی می تونی از Md5 یا Base64 هم استفاده کنی که Md5 بهتره چون غیرقابل بازگشته .
به اینگونه که رمز رو به صورت Hash شده در دیتابیس ذخیره می کنی و وقتی می خوای رمز رو چک کنی اینگونه عمل می کنی .
If md5(TxtPass.text)=pass then
msgbox "OK"
else
msgbox "NO"
end
end if
باتشکر احسان
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.