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

za spremanje lozinke koristit varchar() ili char()

[es] :: MySQL :: za spremanje lozinke koristit varchar() ili char()

[ Pregleda: 1009 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BLACK_SWORD

Član broj: 212173
Poruke: 168
93.157.198.*



Profil

icon za spremanje lozinke koristit varchar() ili char()10.02.2012. u 16:35 - pre 985 dana i 19h

Pozdrav!

Pravim jednu php aplikaciju, i sad me zanima šta je bolje?

Lozinku od korisnika spremam u bazu u md5() algoritmu.

E sad me interesuje dali je polje u bazi bolje da stavim

Code:
`password` varchar(32) COLLATE utf8_unicode_ci NOT NULL,


ili je bolje
Code:
`password` char(32) COLLATE utf8_unicode_ci NOT NULL,


Gdje god sam vidio svi spremaju loziunke kao varchar(), a pošto je string lozinke u md5 32 znaka mislim da je bolje sa char()

pošto troši manje memorije?

Šta je bolje koristit?

Hvala!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
MySQL Cluster Engineer
Oracle
srbistan

Član broj: 201406
Poruke: 10934
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


Profil

icon Re: za spremanje lozinke koristit varchar() ili char()11.02.2012. u 06:55 - pre 985 dana i 5h
posto je fixna duzina, char() pa onda ostavis bazi da ako ume iskoristi cinjenicu da je fixna duzina (mysql ume)
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


Profil

icon Re: za spremanje lozinke koristit varchar() ili char()13.02.2012. u 08:09 - pre 983 dana i 4h
Laptopovi

Kad kažeš da koristiš MD5, da li radiš samo MD5("lozinka") ili si se setio da dodaš i salt? Pošto bez soljenja MD5 nema poentu. Ako koristiš PHP, najjednostavnije je koristiti crypt() funkciju. Ako koristiš neki drugi jezik onda nađi ili napravi svoju funkciju, koja će uz svaku lozinku stavljati i random salt.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 168
93.157.198.*



Profil

icon Re: za spremanje lozinke koristit varchar() ili char()13.02.2012. u 12:37 - pre 982 dana i 23h
Pa kako vi spremate lozinku jel sigurnije da spremam kao md5 i dodam salt il je bolje crypt() funkciju koristit?
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



Profil

icon Re: za spremanje lozinke koristit varchar() ili char()13.02.2012. u 12:45 - pre 982 dana i 23h
A zašto dodatavi salt kad je MD5 ireverzibilan algoritam, tj. ne može se od hash-a dobiti ponovo orginalni text? Da li to radiš zbog brute-force-a ili ... ?
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 168
93.157.198.*



Profil

icon Re: za spremanje lozinke koristit varchar() ili char()13.02.2012. u 13:13 - pre 982 dana i 23h
pa valjda imaju neke rainbows-tablica koje čitaju has od md5 algoritma
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
MySQL Cluster Engineer
Oracle
srbistan

Član broj: 201406
Poruke: 10934
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


Profil

icon Re: za spremanje lozinke koristit varchar() ili char()13.02.2012. u 17:48 - pre 982 dana i 18h
zato stavis sha1()

salt nista ne pomaze na zalost posto se sam salt nalazi u stringu

inace ako pogledas mysql imas funkciju password() koja radi to za tebe ... a mysql brine da je "up to date" tako da kada je md5 npr postao nesiguran password() radi sha1 (osim ako neki genije nije stavio use-old-password i config :D )
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 168
93.157.198.*



Profil

icon Re: za spremanje lozinke koristit varchar() ili char()14.02.2012. u 11:27 - pre 982 dana
kako salt ne pomaže?

ako neko htjedne da dešifrira md5 hash teže ce mu bit ako ima salt jer u salt stavis neke specijalne znakove npr.

Code:

$salt = '&gas%i834Up?!S985';

$password = 'password';

$password = md5($password . $salt);


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
MySQL Cluster Engineer
Oracle
srbistan

Član broj: 201406
Poruke: 10934
95.180.61.*

Sajt: mysql.rs


Profil

icon Re: za spremanje lozinke koristit varchar() ili char()14.02.2012. u 11:45 - pre 982 dana
to sto si napravio nista ne bi pomoglo posto ako se neko dokopa podataka (md5 raw data) dokopace se i tog sorsa sa tim salt-om .. tako da nista nisi napravio ..

fora je lepo da koristis password($pass) i ostavis mysql-u da brine o tome :D (vec duuuuuugo je to sha() a ne md5() algoritam)

cela fora je da ako neko drpi sve sa tvog servera ne moze da desifruje podatke, md5 je suvise sitan za danasnje graficke kartice tako da za sada sha() sutra, ko zna ..
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1226
77.243.20.*



Profil

icon Re: za spremanje lozinke koristit varchar() ili char()14.02.2012. u 13:41 - pre 981 dana i 22h
A cak i da se ne dokopa sorsa, zesce je glupo to raditi jer si posle prinudjen da tu vrednost salta uvek koristis, bez lakog nacina da je izbacis iz upotrebe. Mnogo vise gubis tim pristupom, nego sto dobijas..
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 168
93.157.198.*



Profil

icon Re: za spremanje lozinke koristit varchar() ili char()16.02.2012. u 16:23 - pre 979 dana i 20h
Citat:
bogdan.kecman: to sto si napravio nista ne bi pomoglo posto ako se neko dokopa podataka (md5 raw data) dokopace se i tog sorsa sa tim salt-om .. tako da nista nisi napravio ..

fora je lepo da koristis password($pass) i ostavis mysql-u da brine o tome :D (vec duuuuuugo je to sha() a ne md5() algoritam)

cela fora je da ako neko drpi sve sa tvog servera ne moze da desifruje podatke, md5 je suvise sitan za danasnje graficke kartice tako da za sada sha() sutra, ko zna ..



pa kako se koristi ta mysql funkcija password()?

kakava stupac da napravim u bazi za spremanje passworda?

i dali treba vako upisivat u bazu
Code:


$password = 'fsdfsgd';

$password_sha1 = $password;

$sql = "INSERT INTO `users` (`password`) VALUES(PASSWORD('$password_sha1'))";


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
MySQL Cluster Engineer
Oracle
srbistan

Član broj: 201406
Poruke: 10934
95.180.61.*

Sajt: mysql.rs


Profil

icon Re: za spremanje lozinke koristit varchar() ili char()16.02.2012. u 19:20 - pre 979 dana i 17h
Code:

mysql> select PASSWORD('maliperica');
+-------------------------------------------+
| PASSWORD('maliperica')                    |
+-------------------------------------------+
| *982E4BF1CDAAB8626EA54DA69D429F1F1E888623 |
+-------------------------------------------+
1 row in set (0.03 sec)

mysql> select sha1('maliperica');
+------------------------------------------+
| sha1('maliperica')                       |
+------------------------------------------+
| aa17608ca245b12c7c1ea8d521fdd896d2c45a24 |
+------------------------------------------+
1 row in set (0.00 sec)

mysql> select md5('maliperica');
+----------------------------------+
| md5('maliperica')                |
+----------------------------------+
| 43373e895bd6c73f11043e2ad94bf5a6 |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select OLD_PASSWORD('maliperica');
+----------------------------+
| OLD_PASSWORD('maliperica') |
+----------------------------+
| 1bfe725d7438e320           |
+----------------------------+
1 row in set (0.00 sec)




funkcija password () nije direktno sha1() vec slicna, isto kao sto ni stara passwd() funkcija nije bila ista ko md5()



e sad, obavezno procitaj http://dev.mysql.com/doc/refma...nctions.html#function_password

tu imas note koji ima smisla (ja licno vise volim da koristim mysqlov password() ali .. RFC 2195 se mora postovati ako pises nesto "vazno")

Citat:

The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA2() instead. Also see RFC 2195, section 2 (Challenge-Response Authentication Mechanism (CRAM)), for more information about handling passwords and authentication securely in your applications.



i naravno, vazno:
Citat:

Statements that invoke PASSWORD() may be recorded in server logs or in a history file such as ~/.mysql_history, which means that plaintext passwords may be read by anyone having read access to that information. See Section 5.3.2, “Password Security in MySQL”.



 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1117
*.adsl.eunet.rs.



Profil

icon Re: za spremanje lozinke koristit varchar() ili char()02.03.2012. u 16:48 - pre 964 dana i 19h
Moram da upozorim da funkcija 'password()' nije konzistentna kroz verzije MySQL-a.

Imao sam priliku da 'opravaljam' jedan sajt koji je prestao da radi kad je upgrade-ovan MySQL počeo da koristi drugi alogritam za kriptovanje lozinke u odnosu na stari pa se korisnici nisu mogli ulogovati.

Koliko znam nigde nije objavljeno (što je i logično) kako ručno dekriptovati stare lozinke i snimiti ponovo na novom serveru.
Rešili smo problem tako što smo pretresli celu aplikaciju i ispred svih querija u kojima se koristi ta funkcija ubacili 'SET old_passwords = 1;'

Naravno, postoji mogućnost da će se u bliskoj budućnosti opet menjati algoritam, pa ćemo opet nešto 'akovati.
"The quieter you become, the more you are able to hear."
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
MySQL Cluster Engineer
Oracle
srbistan

Član broj: 201406
Poruke: 10934
95.180.61.*

Sajt: mysql.rs


Profil

icon Re: za spremanje lozinke koristit varchar() ili char()02.03.2012. u 17:38 - pre 964 dana i 18h
da .. zato postoji old_password=1, =2, =3 :D ... kako ide progres tako ...

nije dokumentovano kako nazad zato sto je nemoguce, to je jednosmerna funkcija


 
Odgovor na temu

[es] :: MySQL :: za spremanje lozinke koristit varchar() ili char()

[ Pregleda: 1009 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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