[ belindra @ 08.10.2009. 11:56 ] @
Da li neko zna na koji nacin bi mogao da generisem pasworde u javi za login stranu? Kako vi radite sa paswordima? Da li vi smestate pasworde i username-ove u tabelu pa prilikom logina da gleda iz tabele pasworde pa onda povezuje sa username-om ili kako?
[ boris Dj.bl @ 08.10.2009. 22:32 ] @
Samo generisanje nekih sifri ti je najlakse pomocu random funkcije Math klase.
Ova funkcija ti generise pseudoslucajan realan broj izmedju 0 i 1 koji mozes formatirati kako hoces, tipa pomnozis sa 10 000 i pretvoris u int, pa tako dobijes cetvorocifreni cijeli broj koji moze posluziti kao sifra.
Dalje obradom mozes brojeve konvertovati i u slova il neku kombinaciju.

Ali sad kako citam pitanje do kraja cini mi se da tebi ne trebaju nove sifre nego provjera kad se ukuca neka sifra sa postojecim u bazama.
U sustini imas bazu podataka(obicni txt ili prava baza kao mysql) gdje postoje 2 kolone(ime i sifra)...Ucitas to u neku listu i za uneseno ime i sifru nadjes ime u toj tabeli i provjeris sifru...
Naracno login je uspjesan samo ako uneseno ime postoji i sifra je odgovarajuca...

Sad nadam se da znas sve ovo isprogramirati u javi ako vec pitas za nacin.
Dalje sama sifra u principu bi trebala biti enkripovana da ne bi neko bez dozvole ocitao bazu...tu mozes iskorisiti neki algoritam enkripcije...
[ belindra @ 09.10.2009. 08:33 ] @
Sredio sam ja sve samo me je interesovalo kako vi baratate sa time. Da li postoje neki "svetski standardi" kako se to radi i na koji nacin...ali ok je za sada. Ja sam kreirao login stranu gde se unosi username i pasword i naravno tabelu sa paswordima i username-ovima i ako se poklapa sve logovanje je proslo. Sve mi inace funkcionise kako treba tako da za sada je ok.

Hvala u svakom slucaju. Ako nekome treba neka pomoc moze da mi se obrati.

Pozz
[ Java Beograd @ 09.10.2009. 08:51 ] @
Zapravo kad se radi sa šiframa, (password) ona ne sme da bude u bazi. Ovo što pišem je "KAKO SE PRAVILNO RADI" a ne "kako može da se iskodira pa da aplikacija radi".

Jer kad je password u bazi podataka, to onda omogućava administratoru da vidi tuđe passworde i da se uloguje sa tuđim username, a to u principu ne bi trebalo dozvoliti. Zato se kod kreiranja korisnika i njegovog user name/passworda generiše MD5 hash string za password (http://en.wikipedia.org/wiki/MD5) (može i neka druga kriptografska hash funkcija) i tako generisan hash string se čuva u bazi. Kasnije, u procesu logovanja korisnika, opet se generiše hash string istim algoritmom (za uneti password), pa se proverava identičnost generisanog MD5 stringa sa onim u bazi. Na ovaj način, passwordi su potpuno zaštićeni.

Možda ovo "na prvo čitanje" nekome može da zvuči komplikovano, ali zapravo nije. Ako treba pojasniću.
[ bantu @ 09.10.2009. 11:47 ] @
Ono što je Java Beograd zaboravio da kaže, a vrlo bitno je za razumjevanje ovog koncepta je da su algoritmi kao što je MD5 jednosmjerni. Iz password-a možeš da dobiješ uvijek ist hash ali iz hasha ne možeš da rekonstrujišeš password.
Većina baza podataka ima ugrađene funkcije md5, sha, itd... Tako da ti implementacija ovoga vrlo jednostavna.
Npr. za MySql:

novi korisnik:
Code:
INSERT into korisnik (username, password) VALUES ('user', MD5('pass'));


provjera da li su user i pass validni, ako upit vrati nešto onda je ok.
Code:
SELECT username FROM korisnik WHERE username='user' AND password=MD5('pass'); 


I eto ga niko osim korisnika ne zna pass.
[ bantu @ 09.10.2009. 11:47 ] @
Izvinjavam se ipak Java Beograd je ostavio link.