Avatar billede Jim Rasmussen Novice
13. september 2010 - 16:26 Der er 10 kommentarer og
1 løsning

Er det så simpelt!?

public int GetHash(string Input)
    {
        return Input.GetHashCode();
    }

Kan dette her gøre det!? ALTSÅ! Det virker :D Men skal bruge det til password og login. For at gøre det mere sikkert. Så er der en anden bedre måde at gøre det på? eller er det bare sådan her det skal gøres?
Avatar billede arne_v Ekspert
13. september 2010 - 16:33 #1
1) metoden er overfloedig da den ikke goer noget som den indbyggede ikke goer

2) den duer ikke til at passwords gemt i database, da den ikke er kryptografisk staerk - brug SHA-256 til det
Avatar billede mjdigital Nybegynder
13. september 2010 - 20:04 #2
DSDM som Arne_V siger... En god ide ville være en SHA256 kryptering eller en SHA512 hvis du vil ha ekstre sikkerhed...

Eks til en SHA256 byte kryptering ku være således

private static string GetSHA256(string strPlain)
        {
            UnicodeEncoding UE = new UnicodeEncoding();
            byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
            SHA256Managed SHhash = new SHA256Managed();
            string strHex = "";

            HashValue = SHhash.ComputeHash(MessageBytes);
            foreach (byte b in HashValue)
            {
                strHex += String.Format("{0:x2}", b);
            }
            return strHex;
        }
Avatar billede Jim Rasmussen Novice
13. september 2010 - 22:16 #3
okay. mange tak for svaret (: Men hvem skal have point? :s
Avatar billede Jim Rasmussen Novice
13. september 2010 - 22:25 #4
Nu er jeg jo kun et års kodning fremme i asp. såå. Kan i give mig mig en lidt uddybende forklaring af mjdigital
mjdigital's metode? (: mod lidt ekstra point sf.
Avatar billede arne_v Ekspert
13. september 2010 - 22:30 #5
Jeg plejer at kode det som:

        public static string SHA256(string pw)
        {
            HashAlgorithm alg = new SHA256Managed();
            byte[] b = Encoding.UTF8.GetBytes(pw);
            alg.TransformFinalBlock(b, 0, b.Length);
            return BitConverter.ToString(alg.Hash).Replace("-", "");
        }
Avatar billede arne_v Ekspert
13. september 2010 - 22:33 #6
Hans kode og mig kode bestaar grundliggende af 4 dele:
- create en instans af SHA256Managed
- konvertere data fra String til byte[] (fordi password kommer som String men hash algoritmerne virker paa byte[])
- beregne hash som returneres som en byte[] med 32 elementer
- konvertere det array til en String med hex tegn (saa man slipper for at skulle gemme binaere data i databasen)
Avatar billede arne_v Ekspert
13. september 2010 - 22:33 #7
point er op til dig

bemaerk at det er muligt at dele !

her et svar fra mig
Avatar billede Jim Rasmussen Novice
13. september 2010 - 23:11 #8
Hvordan gør jeg så i begge får 15 point? i stedet for 7,5 hver? (:. Da det her jo trak lidt ud
Avatar billede arne_v Ekspert
14. september 2010 - 01:35 #9
Godt spørgsmål.

Jeg er ikke sikker på at der i denn version af eksperten.dk overhovedet er mulighed for at hæve antallet af point.
Avatar billede Jim Rasmussen Novice
14. september 2010 - 13:49 #10
du får point så (:
Avatar billede clausc Nybegynder
15. september 2010 - 11:11 #11
Lige et par gratis kommentarer:

1)
Hashing af data er ikke kryptering af data - mjdigital roder lidt med terminologien.

2)
Overvej kraftigt at hashe mere end bare password (ellers vil to brugere med samme password have samme hash, dvs kender man den enes password kender man osse den andens). Søg på "salted hash" eller overvej at hashe username konkateneret med password (ikke så godt som salt, men dog bedre end intet).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester