PDA

View Full Version : ENCRYPT



viper2009
چهارشنبه 04 شهریور 1388, 17:25 عصر
سلام
کسی کامپوننت یا رفرنسی رو می شناسه که بشه با اون اطلاعات رو از برنامم داخل دیتابیس ENCRYPT کنم و حتی باز خوانی کنم؟

anooshiran
چهارشنبه 04 شهریور 1388, 17:35 عصر
سلام دوست عزيز

براي encrypt كردن نيازي به component نيست . خودت ميتوني براي اين كار يك الگوريتم طراحي كني.
البته به نظز من بهترينالگوريتم براي encrypt كردن آن است كه امكان decrypt كردن ندهد. حتي براي طراح الگوريتم.

حال اگر خودت به الگوريتمي رسيدي كه چه بهتر اگر نه بگو تا بر اساي يك الگوريتم خاص كدهايش را بنويسم

pirmard
چهارشنبه 04 شهریور 1388, 17:54 عصر
البته به نظز من بهترينالگوريتم براي encrypt كردن آن است كه امكان decrypt كردن ندهد. حتي براي طراح الگوريتم.


در اینصورت دیگه به اون انکریپت نمی گن . بلکه مثلا میشه هشینگ ... .
ضمن اینکه اینها در کاربرد اصلا به هم ربطی ندارن . مثلا من می خام پیامی رو برای شما بفرستم و باید اینو انکریپت کنم و شما اونور اونو دیکریپت کنی . خوب حالا به نظر شما اگه غیرقابل بازگشت بود خیلی خوب بود ؟
کلن هشینگ-کدینگ و انکریپت سه مقوله ی جدان .

navid_8x
پنج شنبه 05 شهریور 1388, 02:08 صبح
من خودم در این زمینه اطلاعات ندارم. اما در System.Security.Cryptography کلاس های خوبی وجود داره.

viper2009
سه شنبه 21 مهر 1388, 10:07 صبح
سلام دوباره

امکان داره کدش یا الگوریتم Encrypt کردن ضمیمه کنید که بشه با تغییراتی در ان Encrypt دیگه ساخت که خودتون هم نتونید DeCrypt کنید

و این مشکل رو به VB چطور حل می شه؟
http://barnamenevis.org/forum/showthread.php?t=148057&highlight=Encrypt

saadi2
سه شنبه 21 مهر 1388, 12:04 عصر
برای hash از این کد:




Imports System.Text
Imports System.Security.Cryptography
Public Class SaadiHash
Public Shared Function ComputeHash(ByVal Text As String, ByVal hashAlgorithm As String) As String
Dim plainTextBytes As Byte()
plainTextBytes = Encoding.UTF8.GetBytes(Text)
Dim plainTextWithSaltBytes() As Byte = New Byte(plainTextBytes.Length - 1) {}
Dim I As Integer
For I = 0 To plainTextBytes.Length - 1
plainTextWithSaltBytes(I) = plainTextBytes(I)
Next I
Dim hash As HashAlgorithm
If (hashAlgorithm Is Nothing) Then
hashAlgorithm = ""
End If
Select Case hashAlgorithm.ToUpper()
Case "SHA1"
hash = New SHA1Managed()
Case Else
hash = New MD5CryptoServiceProvider()
End Select
Dim hashBytes As Byte()
hashBytes = hash.ComputeHash(plainTextWithSaltBytes)
Dim hashWithSaltBytes() As Byte = New Byte(hashBytes.Length - 1) {}
For I = 0 To hashBytes.Length - 1
hashWithSaltBytes(I) = hashBytes(I)
Next I
Dim hashValue As String
hashValue = ""
Dim HHE As Integer
For HHE = 0 To UBound(hashBytes)
hashValue &= Hex(hashBytes(HHE))
Next
ComputeHash = hashValue
End Function
Public Shared Function StrToByteArray(ByVal str As String) As Byte()
Dim encoding As New System.Text.ASCIIEncoding()
Return encoding.GetBytes(str)
End Function
End Class


و از کد بالا به این شکل استفاده میشه:



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(SaadiHash.ComputeHash("123456789", "SHA1"))
End Sub

saadi2
سه شنبه 21 مهر 1388, 23:04 عصر
این هم یک سورس عالی برای encrypt _ decrypt
\پیشنهاد میکنم دانلود کنید

viper2009
سه شنبه 21 مهر 1388, 23:18 عصر
این هم یک سورس عالی برای encrypt _ decrypt
\پیشنهاد میکنم دانلود کنید

خوبه

ولی یک مشکل که وجود داره
وقتی که می خوام در دیتاگرید بیارم چطوری اطلاعات رو DeCrypt کنم؟
یعنی داده های Encrypt شده را Decrypt شده در دیتا گرید نشون بدم؟

saadi2
سه شنبه 21 مهر 1388, 23:34 عصر
برای جواب به این سوالت باید بگم مشابه این سوال و در تاپیک زیر با یک برنامه که نوشتم پاسخ دادم اون برنامه رو دانلود کن بعد باکمی تفکر مطمئنم به جوابت میرسی اگهام نشد وقت کردم برات مینویسمش.

http://barnamenevis.org/forum/showthread.php?t=182555

viper2009
سه شنبه 21 مهر 1388, 23:46 عصر
برای جواب به این سوالت باید بگم مشابه این سوال و در تاپیک زیر با یک برنامه که نوشتم پاسخ دادم اون برنامه رو دانلود کن بعد باکمی تفکر مطمئنم به جوابت میرسی اگهام نشد وقت کردم برات مینویسمش.

http://barnamenevis.org/forum/showthread.php?t=182555

مرصی
اول بگذار خودم روش کار کنم بعد اگه نشد که می شه دوباره کمک می گیرم
باشه.

viper2009
چهارشنبه 22 مهر 1388, 14:41 عصر
برای جواب به این سوالت باید بگم مشابه این سوال و در تاپیک زیر با یک برنامه که نوشتم پاسخ دادم اون برنامه رو دانلود کن بعد باکمی تفکر مطمئنم به جوابت میرسی اگهام نشد وقت کردم برات مینویسمش.

http://barnamenevis.org/forum/showthread.php?t=182555

یک مشکل
من DATAGRIDVEIW از قبل دارم و فیلدهاش مشخصه
الان هر کاری می کنم دیتا تیبل بهش وصل نمی شه
از Decrypt هم ایراد می گیره

saadi2
پنج شنبه 23 مهر 1388, 02:05 صبح
بفرمایید دوست عزیز

viper2009
جمعه 24 مهر 1388, 01:14 صبح
بفرمایید دوست عزیز

سلام و مرصی
چرا وقتی از کلاست استفاده می کنم ایراد می گیره که از Me استفاده کن در دستور زیر

For Me.mainloop1 = 1 To insert.Length


For Me.findme1 = finalint To insert.Length


For Me.findme1 = finalint To dec


For Me.findme1 = 0 To dec


ودر دستور دیگر نمی تونم از SQLcommand استفاده کنم بجاش از SQLdataAdapter استفاده کردم



dt = New DataTable
With dt.Columns
.Add("ID")
.Add("Name")
.Add("Last")
End With

If Conn.State = ConnectionState.Closed Then Conn.Open()
da = New SqlDataAdapter("SELECT * FROM BB", Conn)
Dr = da.SelectCommand.ExecuteReader()
If Dr.HasRows Then

While Dr.Read
dt.Rows.Add(Dr("ID"), EnDE.setDecrypt(Dr("Name")), Dr("Last"))
End While

End If

Conn.Close()
DGVForm1.DataSource = dt


البته کار می کنه ها فقط واسه بعده ها مطمئن نیستم

برای سرچ کردن هم از این کد استفاده کردم و DT


With dt

.DefaultView.RowFilter = "Name LIKE '" + txtName.Text + "%' AND Last
LIKE '" + txtLast.Text + "%'"


If .DefaultView.Count = 0 Then


MessageBox.Show(" ", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)

End If


DGVForm1.DataSource = .DefaultView

End With

viper2009
جمعه 24 مهر 1388, 02:55 صبح
سلام آقای Saadi2

من تو رفرش کردن دیتا گرید مشکل دارم
وقتی از DataTable استفاده می شه در موقع ذخیره یا ویرایش رکورد در آخر کار سلول اول گرید انتخاب می شه و این باعث سردرگمی کاربر می شه
قبلا بعد از این اعمال اولین سلول سطری که روش عملی انجام می گرفت انتخاب می شد اما حالا این طور نیست.

و یک مشکله دیگه
اینکه من فقط می خوام یک ستون مثلا نام رو Encrypt کنم که این کار شده ولی چون قبلاً این اطلاعات رو وارد کردم بدون Encrypt کردن الان باید دوباره تک تک اونهارو ادیت کنم با Encrypt
حالا سوالم اینه دستوری هست که بشه فقط ستون نامهارو Encrypt کرد یکجا
برای 440 رکورد فعلاً

viper2009
جمعه 24 مهر 1388, 15:49 عصر
آقا مشکلم حل شد با استفاده از Index گیری از دیتا گرید

فقط متاسفانه دیگه نمی تونم اطلاعاتم رو ویرایش کنم راه حل چیه؟:ناراحت:

saadi2
جمعه 24 مهر 1388, 18:10 عصر
http://barnamenevis.org/forum/showpost.php?p=828379&postcount=11