PDA

View Full Version : حرفه ای: نحوه ی به خاطر سپردن رمز ورود در برنامه تحت ویندوز



mamahdi
یک شنبه 26 خرداد 1392, 20:26 عصر
من یک نرم افزار نوشتم با vb.net و می خوام گزینه ی رمز را به خاطر بسپار داشته باشم اما نمی دونم چطوری؟
می شه ی کمکی بکنید.

h_a_m_i_d
یک شنبه 26 خرداد 1392, 22:51 عصر
دوست عزیز خیلی راحت اونو ذخیره میکنی بعد هم دوباره تو فروم لود مقدارش رو میخونی
مثلا اگه ریچ تکست باکس باشه میشه
richtext1.savefile("path")
تو فروم لود هم
richtext1.loadfile("path")
اگرم تیک رو نزده بود مینویسی اول ریچ تکس باکس رو برابر با هیچی بذاره بعد ذخیرش کنه

poorman
دوشنبه 27 خرداد 1392, 16:21 عصر
دوست عزیز خیلی راحت اونو ذخیره میکنی بعد هم دوباره تو فروم لود مقدارش رو میخونی
مثلا اگه ریچ تکست باکس باشه میشه
richtext1.savefile("path")
تو فروم لود هم
richtext1.loadfile("path")
اگرم تیک رو نزده بود مینویسی اول ریچ تکس باکس رو برابر با هیچی بذاره بعد ذخیرش کنه

این کار یعنی اینکه پسوورد رو داخل سیستم ذخیره کنه ؟
یکم امنیتش پایین نیست ؟

راهی که من پیشنهاد میکنم استفاده از متغیر های setting هست که مقدار رو داخل خود برنامه ذخیره میکنه ;)

maxvel
دوشنبه 27 خرداد 1392, 21:08 عصر
این کار یعنی اینکه پسوورد رو داخل سیستم ذخیره کنه ؟
یکم امنیتش پایین نیست ؟

راهی که من پیشنهاد میکنم استفاده از متغیر های setting هست که مقدار رو داخل خود برنامه ذخیره میکنه ;)

دوست عزیز در 2صورت امنیت پایین هستش! چون setting هم از appdata پشتیبانی میکنه و به راحتی میشه تروجانشو نوشت! من نظر ام اینه پسورد رو به صورت کریپت شده ذخیره کنه یا اینکه یک فرمول خاص به کار ببره! من تو یه برنامه تحت ویندوز دیدم مثلا موقع ذخیره پسور a رو مساوی با !- ذخیره میکرد، اما بازم نظرم منفی هست با اینکار چون بازم شکسته میشه!

با اینجور save پسورد بیشتر موافقم hex کنید بعد save

کد در پست بعدی

maxvel
دوشنبه 27 خرداد 1392, 21:10 عصر
Imports System.IO

Imports System.Text

Public Class Form1

Private Function EncodeHexString(ByVal sText As String) As String

Dim intLength As Integer = sText.Length

If (intLength = 0) Then Return ""

Dim intCount As Integer = 0

Dim sb As New StringBuilder(intLength * 2)

Dim bBytes() As Byte = System.Text.Encoding.ASCII.GetBytes(sText)

For intCount = 0 To bBytes.Length - 1

sb.AppendFormat("{0:X2}", bBytes(intCount))

Next

Return sb.ToString()

End Function

Private Function DecodeHexString(ByVal sText As String) As String

Dim intLength As Integer = sText.Length

If (intLength = 0) Then Return ""

Dim intCount As Integer = 0

Dim sb As New StringBuilder(CType(intLength / 2, Integer))

Try

For intCount = 0 To sText.Length - 1 Step 2

sb.Append(Convert.ToChar(Byte.Parse(sText.Substrin g(intCount,

2), Globalization.NumberStyles.HexNumber)))

Next

Catch ex As Exception

Return ""

End Try

Return sb.ToString()

End Function


ادامه کد در پست بعدی

maxvel
دوشنبه 27 خرداد 1392, 21:11 عصر
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

On Error Resume Next

TextBox1.Text = Interaction.GetSetting(Application.ProductName, Application.ProductName, "TextBox1", "")

Dim strMaxvel As String = TextBox1.Text

Dim strEncodedmaxvel As String = EncodeHexString(strMaxvel)



TextBox1.Text = strEncodedmaxvel


End Sub

Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

Dim strDecodedmaxvel As String = DecodeHexString(TextBox1.Text)



TextBox1.Text = strDecodedmaxvel


Interaction.SaveSetting(Application.ProductName, Application.ProductName, "TextBox1", TextBox1.Text)






End Sub

End Class


تشکر یادتون نره :چشمک:

biotechsoft
سه شنبه 28 خرداد 1392, 07:47 صبح
خیلی مساله رو نپیچونید
از settings استفاده کنید سر و تهش هم میشه 3 خط کد

maxvel
سه شنبه 28 خرداد 1392, 10:43 صبح
خیلی مساله رو نپیچونید
از settings استفاده کنید سر و تهش هم میشه 3 خط کد

دوست من امنیتش پایینه!

این روش پسورد رو hex شده ذخیره میکنه و dehex استفاده میکنهو باعث میشه یه پروگرمر تازه کار نتونه به این راحتیا برنامرو دور بزنه

biotechsoft
سه شنبه 28 خرداد 1392, 12:21 عصر
وقتی قراره پسورد ذخیره بشه ، یعنی امنیت برنامه رو خود فرد بر عهده گرفته!!!
حالا پسوردش هک هم نشه با کلیک ورود ، وارد نرم افزار میشه

اگه واقعا هم امنیت رولازم دارید، توی 1 دیتابیس کوچیک روی سیستم کلاینت ذخیره کنید.

maxvel
سه شنبه 28 خرداد 1392, 12:31 عصر
:متفکر: راه زیاد است و مقصد یکی

mamahdi
دوشنبه 17 تیر 1392, 22:26 عصر
من واقعا ممنونم از جواباتون... ولی جوابی نگرفتم :(
چی کار کنم این رمزو به خاطر بسپاره؟

mamahdi
دوشنبه 17 تیر 1392, 22:34 عصر
چجوری از setting استفاده کنم؟

mamahdi
دوشنبه 17 تیر 1392, 22:35 عصر
دوست من امنیتش پایینه!

این روش پسورد رو hex شده ذخیره میکنه و dehex استفاده میکنهو باعث میشه یه پروگرمر تازه کار نتونه به این راحتیا برنامرو دور بزنه

خب من از کد شما استفاده کردم ولی انگار نه انگار اصن هیچ کاری نمی کرد :(

armin8651
دوشنبه 17 تیر 1392, 22:46 عصر
موقع ورود رمز رو تو رجیستری ذخیره کن و موقع باز کردن فرم رمز ذخیره شده تو رجیستری رو تو تکست باکس لود کن
همه نرم افزارهای معتبر این کار رو میکنن
برای کار با رجیستری هم تو تالار جستجو کن، مطلب زیاده در موردش

mamahdi
دوشنبه 17 تیر 1392, 23:10 عصر
موقع ورود رمز رو تو رجیستری ذخیره کن و موقع باز کردن فرم رمز ذخیره شده تو رجیستری رو تو تکست باکس لود کن
همه نرم افزارهای معتبر این کار رو میکنن
برای کار با رجیستری هم تو تالار جستجو کن، مطلب زیاده در موردش
شما تا حالا خودتون این کار و انجام ندادی؟
آخه من هیچی از رجیستری سر در نمیارم

mohsen22
سه شنبه 18 تیر 1392, 12:36 عصر
ممکنه یه مثال بزنید یاد بگیریم ؟

armin8651
یک شنبه 23 تیر 1392, 21:20 عصر
ببخشید دیر جواب دادم
از لینک زیر میتونید کار با رجیستری رو یاد بگیرید:

آموزش استفاده از رجیستری در VB.NET حجم: 87.1 کیلوبایت (http://barnamenevis.org/attachment.php?attachmentid=19042&d=1213216152)

shadi khanum
دوشنبه 24 تیر 1392, 08:40 صبح
میتونی زا استگانوگرافی کمک بگیری .. هم کار رو خیلی سخت نکردی و هم به راحتی قابل هک شدن نیست.. پسورد رو تو یه فایل bmp بصورت رمز ذخیره کن و دفعه بعد از همون جا بخونش

systam
دوشنبه 24 تیر 1392, 09:44 صبح
سلام به نظر من بهترینش
در بانک و یا فایل متنی به صورت decode
ذخیره و تبدیلش کنی