ver - /Entschlüsselung ein Passwort gespeichert auf compact-Datenbank

Mein Projekt enthält 2 Formen, eine zu registrieren, die Benutzer und eine zum login. Ich bin mit einem kompakten lokale Datenbank zur Speicherung der Passwörter. Ich schrieb eine Funktion, um das Kennwort zu verschlüsseln, wenn der Benutzer sich registriert. Ich schrieb dann ein anderer zum entschlüsseln das selbe Passwort, wenn der Benutzer sich anmeldet.

Den ersten Teil, Verschlüsselung, funktioniert Prima. Der Benutzer registriert sich, und ich kann sehen, dass das Passwort verschlüsselt in der Datenbank. Jedoch, wenn ich versuche zu einloggen, dass das Passwort nicht entschlüsselt werden. Hier sind meine Funktionen.

Module EncryptionModule

    Public Function base64Encode(ByVal sData As String) As String

        Try
            Dim encData_Byte As Byte() = New Byte(sData.Length - 1) {}
            encData_Byte = System.Text.Encoding.UTF8.GetBytes(sData)
            Dim encodedData As String = Convert.ToBase64String(encData_Byte)
            Return (encodedData)

        Catch ex As Exception

            Throw (New Exception("Error is base64Encode" & ex.Message))

        End Try


    End Function

    Public Function base64Decode(ByVal sData As String) As String

        Dim encoder As New System.Text.UTF8Encoding()
        Dim utf8Decode As System.Text.Decoder = encoder.GetDecoder()
        Dim todecode_byte As Byte() = Convert.FromBase64String(sData)
        Dim charCount As Integer = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length)
        Dim decoded_char As Char() = New Char(charCount - 1) {}
        utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0)
        Dim result As String = New [String](decoded_char)
        Return result

    End Function

End Module

Dies ist die routine, registrieren Sie einen Benutzer und der Verschlüsselung der Passwort:

Private Sub btnRegister_Click(sender As Object, e As EventArgs) Handles btnRegister.Click

                        'If the username is taken or used on the 
                    'database, then create account
                    If MasterTableAdapter.CheckUserName(txtUserName.Text) = Nothing Then

                        Dim pwd As String = base64Encode(Trim(txtConfirmPassword.Text))

                        MasterTableAdapter.CreateAccount(txtFName.Text, txtLName.Text, txtUserName.Text, pwd, int1)

                        MsgBox("An account has been created for: " & vbNewLine & _
                        "Employee: " & txtFName.Text & " " & txtLName.Text & vbNewLine & _
                        "User Name: " & txtUserName.Text & vbNewLine & _
                        "Access Level: " & strAccessLevel)

                        Me.Close()

                    Else

                        MessageBox.Show("The username is in use. Please select another username.", "Authentication Error", MessageBoxButtons.OK, _
                                                MessageBoxIcon.Error)

                    End If

End Sub

Hier ist die routine zum anmelden und entschlüsseln das Passwort aus dem Login-Formular:

Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Klicken Sie auf

Dim pwd As String = base64Decode(Trim(txtPassword.Text))

            If Not MasterTableAdapter.Login(txtUserName.Text, pwd) = Nothing Then
                'frmWelcomePage.Show()

                MsgBox("SUCCESS")

            Else

                'If no match, display error, clear text boxes and send focus back to the username text box.
                MessageBox.Show("Username or password do not match", "Authentication Failure", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                txtPassword.Text = Nothing
                txtUserName.Text = Nothing

                txtUserName.Focus()

            End If
End if

End Sub

Ich bin neu in die ganze Verschlüsselung arena, also ich weiß nicht was ich falsch mache hier.

Die Konvertierung von string zu einer base64 Kodierung ist kaum crypting
wenn Sie darauf bestehen, tun Sie es so, wie Sie sind, wenn man kodiert einen string, der dann sofort entschlüsseln, bekommen Sie das gleiche zurück?
Ich habe es gerade ausprobiert und es hat nicht funktioniert. Dass ich nicht die gleiche Sache zurück. Ich bin neu in diesem, so bin ich tastete auf dem Weg.

InformationsquelleAutor Jose M. | 2013-10-17

Schreibe einen Kommentar