Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[c#] Username and password(hashing)

[es] :: .NET :: .NET Desktop razvoj :: [c#] Username and password(hashing)

[ Pregleda: 3080 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon [c#] Username and password(hashing)04.07.2009. u 09:39 - pre 180 meseci
Napravio sam jednostavnu formu koja vrsi validaciju username-a i passworda na formi i proverava da li taj username postoji u bazi, problem mi je u tome sto taj password stoji upisan u tabeli kao obican text sto je veliki sigurnosni problem. Moje pitanje je kako da sakrije(hashujem) tu password kolonu u tabeli.
Code:
private void btnlogin_Click(object sender, EventArgs e)
        {
            using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.Rent_a_carConnectionString))
            {
                conn.Open();
                string cmdstr = String.Format("Select username,password from Users where username ='{0}' and password = '{1}'", txtUser.Text, txtPass.Text);
                using (SqlCommand cmd = new SqlCommand(cmdstr, conn))
                {
                    SqlDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        if (dr["username"].ToString() == txtUser.Text && dr["password"].ToString() == txtPass.Text)
                        {
                            try
                            {
                                using (Start start = new Start())
                                {
                                    start.ShowDialog();
                                }
                            }
                            catch (Exception ex)
                            {
                                
                                throw new Exception(ex.Message.ToString());
                            }
                            
                        }
                    }
                }
                conn.Close();
            }
        }

http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)04.07.2009. u 19:01 - pre 180 meseci
Jel moguce uraditi kriptovanje neke kolone u MS SQL?
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
79.101.173.*



+2 Profil

icon Re: [c#] Username and password(hashing)04.07.2009. u 21:06 - pre 180 meseci
Jel se to meni čini ili je konekcija otvorena sve dok se ne zatvori dijalog? :)

http://www.google.com/#hl=en&a...q=&aqi=&fp=dMlfxuRvj0I
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)05.07.2009. u 10:10 - pre 180 meseci
Da, izgleda tako :)
my mistake
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: [c#] Username and password(hashing)05.07.2009. u 10:33 - pre 180 meseci
Kao prvo, nemojte koristiti md5, obsolete je i ima veliku collision rupcagu, cak imate i sajtove kojima date hash i on vam nadje collision password . Mozda i nije kriticno za ovaj program ovde ali je pitanje dobre prakse koristiti nesto stabilnije, npr SHA-2

Drugo, ne samo da se konekcija zatvara posle dijaloga nego je i taj conn.Close() nepotreban na tom mestu jer ce dispose koji se poziva na kraju using komande uraditi close ako je konekcija otvorena.

I trece, ako vec imas WHERE statement koji ogranicava select samo na korisnicko ime i lozinku onda nemoj ici kroz while petlju i proveravati da li je rezultat isti takav... ne verujes SQL serveru? Dovoljno je da proveris da li dr.Read vrati red uopste i to je sve (ako je user/pass dobar vratice ti se jedan red, ako nesto od ta dva ne valja vratice ti se prazan reader).




Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)05.07.2009. u 11:06 - pre 180 meseci
Postoji SHA256 za .NET http://msdn.microsoft.com/en-u...urity.cryptography.sha256.aspx
Jel to to?
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)05.07.2009. u 11:22 - pre 180 meseci
Jedno pitanje, kako da prikazem informacije o korisniku koji se ulogovao?
Barem ime i prezime, neki savet bi mi pomogao.
Hvala
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: [c#] Username and password(hashing)05.07.2009. u 11:34 - pre 180 meseci
moze sha-256

a informacije o korisniku, pa imas korinicko ime i proverio si da li je password hash validan, kad to uradis jednostavno ucitaj informacije o korisniku iz baze i prikazi u labelama ili cemu god hoces.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)05.07.2009. u 12:06 - pre 180 meseci
Nasao sam i ovo
http://technet.microsoft.com/en-us/library/ms190357.aspx //ENCRYPTBYPASSPHRASE (Transact-SQL)
http://technet.microsoft.com/en-us/library/ms188910.aspx //DECRYPTBYPASSPHRASE (Transact-SQL)
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

logic_rabbit
Radenko Zec
banjaluka

Član broj: 74458
Poruke: 271
*.lanaco.com.



+1 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 07:58 - pre 180 meseci
Postoji i MD160 kao zamjena za MD5 od Frameworka 2.
http://msdn.microsoft.com/en-u...ography.ripemd160(VS.100).aspx

Mozda bi njega bilo najpametnije koristiti?
logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.8.*



+6 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 11:44 - pre 180 meseci
Ne vidim razlog zašto bi se bilo šta drugo koristilo osim SHA-256 ili 512....

Čak i MSDN kaže: Newer hash functions, such as the Secure Hash Algorithms SHA-256 and SHA-512, are available. Consider using the SHA256 class or the SHA512 class instead of the RIPEMD160 class.
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 12:44 - pre 180 meseci
Koristicu SHA-256
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

logic_rabbit
Radenko Zec
banjaluka

Član broj: 74458
Poruke: 271
*.lanaco.com.



+1 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 14:18 - pre 180 meseci
Citat:

Ne vidim razlog zašto bi se bilo šta drugo koristilo osim SHA-256 ili 512....

Čak i MSDN kaže: Newer hash functions, such as the Secure Hash Algorithms SHA-256 and SHA-512, are available. Consider using the SHA256 class or the SHA512 class instead of the RIPEMD160 class.


Osnovni razlog zasto bi koristili RIPEMD160 je ako snimamo to u kolonu u bazi manje ce prostora zauzimati nego SHA-256 ili SHA-512, a vjerovatno ce i
hashovanje biti nesto brze (izrazeno u milisekundama).

logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 14:42 - pre 180 meseci
Dobar je i SHA-256, posto nemam veliku bazu.
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.8.*



+6 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 15:50 - pre 180 meseci
Citat:
logic_rabbit: Osnovni razlog zasto bi koristili RIPEMD160 je ako snimamo to u kolonu u bazi manje ce prostora zauzimati nego SHA-256 ili SHA-512, a vjerovatno ce i
hashovanje biti nesto brze (izrazeno u milisekundama).


Da, ali opet... Hashovanje se odvija na client strani, pa milisekunde ne predstavljaju skoro nikakvu razliku - drugačije bi bilo da je opterećenje na bazi podataka. A što se tiče prostora u bazi; obično se kriptiraju korisnički podaci, a jako malo baza radi sa brojem korisnika koji se mjeri u milionima da bi se razlika stvarno drastično osjetila - naravno u odnosu na zaštitu tih istih korisničkih podataka ...
Iskreno, ja za taj RIPEMD160 nisam nikad ni čuo, dok za SHA jesam, i to jako mnogo puta... Ako je i SHA1 160 bita, i "razbijen" je, da li je onda RIPEMD160 "siguran"?
Btw, pretpostavljam da banke i vlade koriste SHA > 256 bita?
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 17:32 - pre 180 meseci
Ovo je sa MSDN-a, pise // This example assumes that there is a predefined constant DATA_SIZE.
sta ovde treba da bude DATA_SIZE, jel to text iz password polja moje forme?
Prvi put radim ovo, pomozite.
http://msdn.microsoft.com/en-u...urity.cryptography.sha256.aspx
Code:
byte[] data = new byte[DATA_SIZE];
byte[] result;
SHA256 shaM = new SHA256Managed();
result = shaM.ComputeHash(data);

http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 17:46 - pre 180 meseci
Citat:
Osnovni razlog zasto bi koristili RIPEMD160 je ako snimamo to u kolonu u bazi manje ce prostora zauzimati nego SHA-256 ili SHA-512, a vjerovatno ce i hashovanje biti nesto brze (izrazeno u milisekundama).


Ima tu nekoliko stvari. Sto se tice brzine za hashere koji se koriste u security-u je vazno upravo obrnuto, da bude sporiji. Sto zahtevniji algoritam => manji broj bajtova hashovan po sekundi => duze vreme potrebno za birthday attack i otkrivanje kolizije. To je generalno prozaicno za lozinke posto se digest radi nad blobovima reda par desetina bajtova a brzine hashera su reda par stotina Mb/s i jace u zavisnosti od implementacije, znaci da je recim 20 bajtova unicode lozinka i da je brzina hashera 200Mb/s vreme hashovanja je 0.1 microsekunda malo je nevazno dal ce biti 0.11, ili 0.09 sekundi, vaznije je da hasher nema collision weakness.

U pravu si za storage, ali govorimo o razlici od 12 bajtova po korisniku, tj 12 kb za 1000 korisnika, bez preterivanja mislim da ces vise prostora na disku izgubiti kroz fragmentaciju stranica i indexa u SQL serveru nego sto ces ustedeti eliminacijom ovih 12 bajtova... A sa druge strane koristis NIST algoritam za koji ces lako saznati ako se pojavi exploit.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: [c#] Username and password(hashing)06.07.2009. u 18:03 - pre 180 meseci
data niz treba da ti sadrzi bajtove lozinke. Najjednostavnije je da UTF8 ili Unicode encoderom pretvoris string lozinke u niz bajtova i da onda taj niz hashujes.

Takodje, sam hash mozes da prebacis u base64 string sa Convert.ToBase64String(result) i da hash smestis kao string u bazu (da se ne maltretiras sa varbinary poljima).
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: [c#] Username and password(hashing)

[ Pregleda: 3080 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.