| |
Kot rečeno v tvoji kodi pošlješ v sql stavku txtPassword.Text v nekodiriani obliki, ki jo je vnesel uporabnik.
Vendar pa, ker imaš v bazi shranjene md5 vrednosti, moraš zato pred tem sql stavkom vrednost txtPassword.Text pretvoriti v md5 ter nato v sql stavku uporabiti to novo vrednost.
Pa še ena postranska stvar. Če boš program dal na uporabo ostalim, potem je obvezno potrebno narediti preverjanje vnosa (odstraniti znak ' ), ker v tvoj program se da preko "sql injection" brez problema priti notri, tudi če ne poznaš gesla.
Oz. boljša implementacija je, da najprej dobiš zapis iz baze, ki ima iskani username, ter nato preverjaš vrednost gesla v bazi in vnešeno vrednost.
Kako ustvarjaš tabele na bazi, pa lahko vidiš v lekciji:
http://www.zmaga.com/ucenje.php?id=2400
|
| |
| |
A bi mi lahko kdo to uredil preko team viewer? bi lepo prosil... ker sam ne vem točno kaj delam oz. kaj morem naredit.. lahko me dodaš na skype? krizzan87
|
| |
| |
Pa če ti bo kdaj ratalo, prosim potem to tudi napiši sem ali pa napiši lekcijo
|
| |
| |
bom ja... pravkar sem kontaktiral še enega, in čakam na odgovor! ko uredim zadevo objavim lekcijo
|
| |
| |
eden mi je napisal naj uporabim MD5('thepasswrdhere' ) ampak nevem kje naj to uporabim
spremenil: podtalje (9.9.2011 ob 20.41.27)
|
| |
| |
Uporabiti moraš v tvojem sql stavku in sicer moraš namest:
& txtPassword.Text &
napisati
& MD5(txtPassword.Text) &
Ampak problem je, ker funkcije MD5 nimaš. Zato moraš najprej napisati funkcijo MD5, ki pretvarja navaden tekst v MD5.
To pa je v bistvu funkcij GenerateHash, ki sem jo napisal zgoraj. Funkcijo sem dobil na internetu, vendar kar sem sedaj na hitro preveril, ne vrača pravilne md5 vrednosti, tako da jo je treba malenkost spremeniti.
Tako da pravilna funkcija, ki iz teksta generira MD5, bi bila:
Private Function pretvori_v_MD5(ByVal SourceText As String) As String
Dim Md5 As New MD5CryptoServiceProvider()
Dim Data As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes(SourceText))
Dim sBuilder As New StringBuilder()
Dim i As Integer
For i = 0 To Data.Length - 1
sBuilder.Append(Data(i).ToString("x2"))
Next i
Return sBuilder.ToString()
End Function
V kodo dodaj še čisto na vrhu še naslednji dve vrstici:
Imports System.Text
Imports System.Security.Cryptography
Tako da potem dodaj to funkcijo nekje v kodi in popravi sql stavek, da bo notri:
& pretvori_v_MD5(txtPassword.Text) &
... in program bi moral delovati.
spremenil: podtalje (9.9.2011 ob 21.01.48)
|
| |
| |
hmmm... tole je sedaj moja koda in ne razumem zakaj mi še kr javlja napačno uporabniško ime ali geslo. mogoče zaradi tega ker zraven še salt?

Imports System.Data.SqlClient
Imports MySql.Data.MySqlClient
Imports System.Text
Imports System.Security.Cryptography
Public Class Form1
Dim MySqlConnection As MySqlConnection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MySqlConnection = New MySqlConnection
MySqlConnection.ConnectionString = "Server=SKRITO;Port=3306; User Id=SKRITO; Password=SKRITO; Database=SKRITO"
MySqlConnection.Open()
Dim Myadapter As New MySqlDataAdapter
Dim sqlquary = "SELECT * From forum_members WHERE name='" & txtUsername.Text & "'AND member_login_key='" & pretvori_v_MD5(txtPassword.Text) & "';"
Dim command As New MySqlCommand
command.Connection = MySqlConnection
command.CommandText = sqlquary
Myadapter.SelectCommand = command
Dim Mydata As MySqlDataReader
Mydata = command.ExecuteReader
If Mydata.HasRows = 0 Then
MsgBox("Error! Please check your Username/Password")
Else
Form2.Show()
Me.Close()
End If
End Sub
Private Function pretvori_v_MD5(ByVal SourceText As String) As String
Dim Md5 As New MD5CryptoServiceProvider()
Dim Data As Byte() = Md5.ComputeHash(Encoding.UTF8.GetBytes(SourceText))
Dim sBuilder As New StringBuilder()
Dim i As Integer
For i = 0 To Data.Length - 1
sBuilder.Append(Data(i).ToString("x2"))
Next i
Return sBuilder.ToString()
End Function
End Class
spremenil: Mirko Krizan (10.9.2011 ob 10.00.58)
|
| |
| |
Pri insidepro.com sem vtipkal moje geslo in salt in se je prava zgenerirana koda pojavila pri tem: md5(md5($salt).md5($pass)) torej to pomeni da se salt zraven šteje, ampak zdaj pa spet ne vem katero kodo dat not
spremenil: Mirko Krizan (10.9.2011 ob 12.36.39)
|
| |
| |
res bi te prosil podtalje da mi tole pomagaš rešit..
|
| |
| |
Do sedaj nisi nič omenil, da uporabljaš tudi "salt".
Glede na tvoj opis, bi bila potem pravilna koda naslednja:
& pretvori_v_MD5( pretvori_v_MD5("tvoja_salt_vrednost") + pretvori_v_MD5(txtPassword.Text) ) &
spremenil: podtalje (10.9.2011 ob 22.22.48)
|
| |
Prikazujem 2 od skupno 4 strani |
|