تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كلمة السر في قاعدة بيانات اكسس
#5
اخي الكريم عملت مثال للتو لاجلك
vs 2013 and access 2010

بالنسبة لاصدار الـ vs شوف الشرح هنا
http://vb4arb.com/vb/showthread.php?tid=757

اما قاعدة البيانات فابسط
tb==table
un====جدول نصي
ps=====جدول نصي
------------------------
مكونات المثال في فيجوال بيسك
Module1.vb
ومحتواه
كود :
Imports System.Security.Cryptography
Imports System.Text
Imports System.IO
Imports System.Data.OleDb

Module Module1
    Public Function Encrypt(ByVal text As String, ByVal key As String) As String
        Try
            Dim crp As New TripleDESCryptoServiceProvider
            Dim uEncode As New UnicodeEncoding
            Dim bytPlainText() As Byte = uEncode.GetBytes(text)
            Dim stmCipherText As New MemoryStream
            Dim slt() As Byte = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
            Dim pdb As New Rfc2898DeriveBytes(key, slt)
            Dim bytDerivedKey() As Byte = pdb.GetBytes(24)
            crp.Key = bytDerivedKey
            crp.IV = pdb.GetBytes(8)
            Dim csEncrypted As New CryptoStream(stmCipherText, crp.CreateEncryptor(), CryptoStreamMode.Write)
            csEncrypted.Write(bytPlainText, 0, bytPlainText.Length)
            csEncrypted.FlushFinalBlock()
            Return Convert.ToBase64String(stmCipherText.ToArray())
        Catch ex As Exception
            Throw
        End Try
    End Function
    Public str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb"
    Public con As New OleDbConnection(str)

    Function isvaliduser(ByVal un As String, ByVal ps As String) As Boolean
        Dim k As String = "vb4arabdotcom"
        Dim thepassword As String = Encrypt(ps, k)
        Dim cm As New OleDbCommand("select count(tid) from tb where un=@un and ps=@ps", con)
        cm.Parameters.AddWithValue("@un", un)
        cm.Parameters.AddWithValue("@ps", thepassword)
        Try
            If con.State = ConnectionState.Closed Then
                con.Open()
            End If
            If cm.ExecuteScalar > 0 Then
                Return True
            Else
                Return False
            End If
        Catch ex As Exception
            Return False
        End Try
    End Function

    Function istaken(ByVal un As String) As Boolean
        Dim cm As New OleDbCommand("select count(tid) from tb where un=@un", con)
        cm.Parameters.AddWithValue("@un", un)
        Try
            If con.State = ConnectionState.Closed Then
                con.Open()
            End If
            If cm.ExecuteScalar > 0 Then
                Return True
            Else
                Return False
            End If
        Catch ex As Exception
            Return False
        End Try
    End Function

    Function addme(ByVal un As String, ByVal ps As String) As Boolean
        If istaken(un) Then
            Return False
            Exit Function
        Else
            Dim k As String = "vb4arabdotcom"
            Dim thepassword As String = Encrypt(ps, k)

            Dim cm As New OleDbCommand("insert into tb(un,ps) values(@un,@ps)", con)
            cm.Parameters.AddWithValue("@un", un)
            cm.Parameters.AddWithValue("@ps", thepassword)
            Try
                If con.State = ConnectionState.Closed Then
                    con.Open()
                End If
                cm.ExecuteNonQuery()
                Return True
            Catch ex As Exception
                Return False
            End Try
        End If
    End Function
End Module
وملف register.vb
ومحتواه
كود :
Public Class register

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Me.Close()
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        lbl.Visible = False
        If addme(un.Text, ps.Text) Then
            lbl.Text = "تم تسجيلك بنجاح"
            lbl.ForeColor = Color.Green
            lbl.Visible = True
        Else
            lbl.Text = "لم يتم تسجيلك لسببين اما ان الاسم محجوز او لامر غير معروف ابلغ المسؤول بذلك"
            lbl.ForeColor = Color.Red
            lbl.Visible = True
        End If
    End Sub

  
End Class
وملف login.vb
ومحتواه
كود :
Public Class login

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        If us.Text.Trim = "" Or ps.Text.Trim = "" Then Exit Sub
        lbl.Visible = False
        If isvaliduser(us.Text, ps.Text) Then
            lbl.Text = "أهلا وسهلا بك, البيانات صحيحة"
            lbl.ForeColor = Color.Green
            lbl.Visible = True
        Else
            lbl.Text = "عفوا البيانات خاطئة"
            lbl.ForeColor = Color.Red
            lbl.Visible = True
        End If
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        register.ShowDialog()
    End Sub

  
End Class

المثال مرفق


الملفات المرفقة
.zip   For_raoe-041.zip (الحجم : 59.06 ك ب / التحميلات : 71)
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: Sajad


الردود في هذا الموضوع
RE: كلمة السر في قاعدة بيانات اكسس - بواسطة سعود - 09-08-14, 02:37 AM


التنقل السريع :


يقوم بقرائة الموضوع: