Gå til innhold

Anbefalte innlegg

Tull. De fleste hashing-algoritmene er entydige og deterministiske og kan trygt lagres. Enveis-hashing av passordet før det lagres i databasen er veldig, veldig, veldig vanlig.

Tull??? Hvorfor er du så påståelig??

Annbefaler deg å lese litt om HASH i MSDN.

 

Der står det ganske klart at dette er gjenstand for nettop dette. Dessuten har jeg selv prøvd dette. Jeg har brukt .NET sine egne HASH metoder for å lage HASH verdier av passord, og lagret det i en SQL tabell. Når jeg fra en Vista64 bit maskin genererer passord så klarer ikke en bruker på en XP32 maskin å logge inn.

GetHashCode er ikke det man tenker på når man snakker om hashing av passord. Enhver luring forstår det. Til hashing av passord brukte man tidligere ofte MD5, nå om dagen er det vel varianter av SHA som gjelder.

Lenke til kommentar
Videoannonse
Annonse
Det er fordi du misforstod poenget :)

 

public class MittProgram
{
 private Dictionary<string, MinDataKlasse> bruker_liste;
}

public class MinDataKlasse
{
 private string m_passord;
 private DateTime m_forrige_endring;
 public string Passord
 { 
get 
{ 
  return m_passord;
} 
set 
{
  m_passord = value;
  m_forrige_endring = DateTime.Now; 
}
 }
 public DateTime LastPasswordChange { get { return m_forrige_endring; } }
}

Nå vil jeg også anbefale mot å bruke norse navn på variabler, funksjoner osv. All programmering bør foregå på engelsk. I verste fall burde kun kommentarer være Norske.

 

Ja det kan godt tenkes at det kan være lurt å ikke bruke norske ord. Jeg skjønner ikke helt hvordan jeg skal få legge inn passord tilhørende den enkelte bruker?

Lenke til kommentar

jeg har nå laget klassen MinDataKlasse.cs slik som dette:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Øving_2
{
   public enum Status { Administrator, Bruker };


   class MinDataKlasse
   {
       private string m_passord;
       private DateTime m_forrige_endring;

       public string Passord
       {
           get
           {
               return m_passord;
           }

           set
           {
               m_passord = value;
               m_forrige_endring = DateTime.Now; 
           }
       }

       public DateTime LastPasswordChange 
       { 
           get 
           { 
               return m_forrige_endring;
           } 
       }
   }
}



 

 

Videre har jeg i Form1.cs gjort følgende:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Øving_2
{
   public partial class Form1 : Form
   {
       MinDataKlasse mdk = new MinDataKlasse();
       private Dictionary<string, MinDataKlasse> brukerliste;


       public Form1()
       {
           InitializeComponent();
       }

       private void okKnapp_Click(object sender, EventArgs e)
       {
           //brukerliste.Add("admin", );


           //string passord = "";
           if (brukerliste.TryGetValue(brukernavnBoks.Text, out mdk.Passord) && passordBoks.Text == mdk.Passord)
           {
               MessageBox.Show("Du er pålogget som " + brukernavnBoks.Text);
           }
       }
   }
}

 

Denne får jeg ikke compilert da det er feil i den, men jeg klarer ikke finne det. Jeg er også klar over at passord og brukernavn for brukerne må settes når programmet kjøres.

 

Er dette en god begynnelse?

Hvor skal jeg sette brukernavn/passord?

Hvordan får jeg if-løkken som sjekker brukernavn til å funke?

 

Er meget takknemmelig for all hjelp!

Lenke til kommentar
GetHashCode er ikke det man tenker på når man snakker om hashing av passord. Enhver luring forstår det. Til hashing av passord brukte man tidligere ofte MD5, nå om dagen er det vel varianter av SHA som gjelder.

Mye mulig at alle luringer forstår dette, men jeg synes ikke det kommer veldig bra frem noen sted med mindre man vet om det. Når metoden heter GetHashCode så forventer jeg at den gjør nettop det.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...