PDA

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



nima898
سه شنبه 22 تیر 1389, 13:09 عصر
سلام دوستان من یک برنامه نوشتم میخوام روش پسورد بذارم روشی که به ذهن خودم رسیده اینه که یک inputbox بذارم تا پسورد رو بگیره و کد اسکی ورودی رو بدست بیاره و با آرایه ای که توش کد اسکی اصلی هست مقایسه کنه ضمنا نیازی ندارم که پسورد قابل ویرایش باشه ترجیحا میخوام ثابت باشه نظرتون چیه؟

Shahram_Shobeiri
سه شنبه 22 تیر 1389, 13:16 عصر
چه کاریه آقا! بی خود خودتو درگیر آرایه نکن. یه رشته تعریف کن اینجوری
Dim passwd As String = "123456"
بعد مقدار تکتس باکسو با اون مقایه کن
if passwd = textbox1.text then
.
.
.

nima898
سه شنبه 22 تیر 1389, 13:31 عصر
چه کاریه آقا! بی خود خودتو درگیر آرایه نکن. یه رشته تعریف کن اینجوری
Dim passwd As String = "123456"
بعد مقدار تکتس باکسو با اون مقایه کن
if passwd = textbox1.text then
.
.
.
فکر نمیکنم گذاشتن عبارت پسورد بصورت یک رشته تو برنامه از نظر امنیت کار درستی باشه

saeed-esfandi
سه شنبه 22 تیر 1389, 13:53 عصر
فکر نمیکنم گذاشتن عبارت پسورد بصورت یک رشته تو برنامه از نظر امنیت کار درستی باشه

خوب همون کد اسکی که خودت گفتی رو بزار که البته در فایل ذخیره شدن که امنیتش کمتر از خود برنامس
ولی اگه پسورد رو رمز کنی بهتره

Shahram_Shobeiri
سه شنبه 22 تیر 1389, 14:46 عصر
آقا این کاری که شما داری می کنی اساساً از پایه ایراد داره. حالا شما حرف از امنیت می زنی؟؟؟
رمز ثابت و غیر قابل تغییر خودش اونقدر نا امن هست که دیگه به موارد امنیتی دیگه فکر نکنی.
تازه مثلاً شما فکر کردی اگه به صورت اسکی ذخیره کنی خیلی امنیت رو بردی بالا؟ اساساً کلیه کاراکتر ها به صورت اسکی کد یا یونی کد یا هر کد دیگری (خلاصه به صورت عدد) در سیستم ذخیره میشن و همه این روش های کد گذاری روش های استاندارد هستند و کسی که انقدر مهارت داره فایل اجرایی شما رو باز و کد شما رو بخونه، تبدیل اسکی به کاراکتر براش بسی آسانه برادر!!!

nima898
سه شنبه 22 تیر 1389, 19:21 عصر
رمز ثابت و غیر قابل تغییر خودش اونقدر نا امن هست که دیگه به موارد امنیتی دیگه فکر نکنی
چطور رمز ثابت و غیر قابل تغییر نا امنه؟

اساساً کلیه کاراکتر ها به صورت اسکی یا یونی کد یا هر کد دیگری (خلاصه به صورت عدد) در سیستم ذخیره میشن
من اینطور فکر نمیکنم مثلا عدد 3425 تو این کد:

dim a as integer = 3425
به صورت یک عدد ذخیره میشه نه چهار تا کد 3و4و2و5 یا عدد 65 تو این کد :

dim a as byte= 65
به صورت کاراکتر "A" ذخیره میشه البته این نظر منه ممکنه اشتباه باشه

اگه پسورد رو رمز کنی بهتره
کاملا موافقم

Shahram_Shobeiri
چهارشنبه 23 تیر 1389, 08:09 صبح
چطور رمز ثابت و غیر قابل تغییر نا امنه؟

خیلی ساده است.
1-اگه کسی رمز رو بفهمه تنها کاری که از end user بر میاد اینه که بشینه و بزنه تو سر خودش!
2-در بهترین حالت حداقل دو نفر (شمای برنامه نویس و کاربر نهایی) رمز رو می دونند و به نظر شما به این چی میگن؟
3-حتما دیدین که برای بالا بردن امنیت به کاربران توصیه میشه که در دوره های زمانی مشخص رمز عبور رو تغییر بدهند؟ برنامه شما فاقد این نکته امنیتی است
4-...


من اینطور فکر نمیکنم مثلا عدد 3425 تو این کد:
کد:
dim a as integer = 3425
به صورت یک عدد ذخیره میشه نه چهار تا کد 3و4و2و5 یا عدد 65 تو این کد :

عزیزم بنده گفتم کلیه کاراکتر ها. فرق کاراکتر و عدد رو قطعاً خودتون میدونید و نیاز به توضیح نداره!!!

و بعد از همه این داستان ها به شما توصیه می کنم که رمز رو به صورت کد شده در رجیستری ذخیره کنید (البته اگر نمی خواهید از db استفاده کنید و برنامه شما تک کاربره است) و در اولین اجرا کاربر رو مجبور کنید که یک رمز عبور انتخاب کنه و در دوره های زمانی اون رو مجبور کنید که رمزش رو تغییر بده

برای کد کردن رمز عبور می تونید از کلاسی که ضمیمه کردم استفاده کنید.

iradata
چهارشنبه 23 تیر 1389, 09:10 صبح
بهترین راه اینه که از ابزار خود VB.net استفاده کنی

به این صورت که از منوی Project آخرین گزینه Properties ...

رو انتخاب کنی بعد تب setting رو بزن و دو مقدار جدید مثلا user1 و password1 روو وارد کن

و داخل Value مقدارهای user1 و password1 رو وارد کن

مثلا من برای user1 کلمه admin و برای password1 عدد 1 روو وارد کردم

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




If TextBox1.Text = My.Settings.user1 And TextBox2.Text = My.Settings.password1 Then
MessageBox.Show(" نام کاربری و کلمه عبور صحیح است ")
Else
MessageBox.Show(" نام کاربری و کلمه عبور صحیح نیست ")
End If



در ضمن نام کاربری و کلمه عبور در اینجا قابل ویرایش هم هست :لبخندساده:

اگه کسی لازم داشت بگه تا سورس اون رو هم براش بزارم

nima898
چهارشنبه 23 تیر 1389, 22:13 عصر
عزیزم بنده گفتم کلیه کاراکتر ها. فرق کاراکتر و عدد رو قطعاً خودتون میدونید و نیاز به توضیح نداره!!!
کاراکتر ها: اگه منظورتون دستورها باشه باید بگم که اونها هم به صورت کد اسکی یا یونیکد ذخیره نمیشه ضمنا صحبت در مورد اعداد بود

خیلی ساده است.
1-اگه کسی رمز رو بفهمه تنها کاری که از end user بر میاد اینه که بشینه و بزنه تو سر خودش!
2-در بهترین حالت حداقل دو نفر (شمای برنامه نویس و کاربر نهایی) رمز رو می دونند و به نظر شما به این چی میگن؟
3-حتما دیدین که برای بالا بردن امنیت به کاربران توصیه میشه که در دوره های زمانی مشخص رمز عبور رو تغییر بدهند؟ برنامه شما فاقد این نکته امنیتی است
4-...
حق با شماست

vbworm
پنج شنبه 24 تیر 1389, 04:08 صبح
سلام دوستان
میشه از Encrypt و Decrypt برای گذاشتن پسورد استفاده کرد..