No, pokud ti jde o to aby si uživatel zadal heslo a ono ho to porovnalo s tím pravým a nechceš ho nikde ukládat, tak ho prožeň přes MD5hash. Z toho se heslo zjistit zpětně nedá. Budeš mít nějakej soubor s tím MD5hashem, uživatel zadá heslo, ty ho proženeš přes tuhle funkci a porovnáš se souborem. Teď mě napadlo, co kdyby někdo MD5hash změnil... Zkusil bych heslo pomocí nějakých funkcí upravit, zahashovat a uložit. Při kontrole hesla opačná funkce. Nebo použít MD5hash několikrát za sebou (počet by určilo třeba samotný heslo pomocí nějaké funkce). Asi to není úplně neprůstřelný, ale na takovéto omácí kódování to stačí :D Jo a ještě, tady máš funkci na hashování řetězce:
Function HashMD5(ByVal S As String) As String
Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider()
Dim Hash As Byte(), I As Int16
Hash = MD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(S))
S = ""
For I = 0 To Hash.Length - 1
S = S & Hex(Hash(I)).PadLeft(2, "0").ToLower()
Next
Return S
End Function
|