criptare / decriptare

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

rem
Average Member
Mesaje: 62
Membru din: Mie Noi 10, 2004 11:50 am
Localitate: Cluj-Napoca
Contact:

criptare / decriptare

Mesajde rem » Sâm Apr 02, 2005 12:43 pm

Salutare tuturor,

Am o problema cu criptarile astea de parola in PHP / MySQL...
De ex. am un cont de utilizator si daca omu' isi uita parola tre sa o trimit prin mail, automat...

In baza mea de date, am campul parola si este criptata cu PASSWORD.

codu-i ceva de genul:

$updateQuery = "UPDATE users SET user='$user',pass=PASSWORD('$newpass'),firstname='$firstname',surname='$surname',email='$email' WHERE ID = ". $HTTP_GET_VARS['id'];


mai departe, inainte sa trimita email-ul am selectat-o in felul urmator:

$sql = "SELECT PASSWORD(pass) FROM users WHERE ID = ". $HTTP_GET_VARS['id'];
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$pass = $row['PASSWORD(pass)'];

e ok, la update merge struna, dar cand vreau sa-i trimit omului noua parola prin email... mi-o trimite codata (fu0wen8dht74hdn489) etc...

eu i-am pus variabila "Noua parola este: $pass"... si mi-o trimite codata
am incercat si cu "Noua parola este: PASSWORD($pass)" dar imi da "oroare" PHP-ul...

Puteti sa-mi spuneti ce nu fac bine? Va rog...

Multumesc anticipat.



arahne
PHPRomania Supporter
Mesaje: 11
Membru din: Joi Dec 16, 2004 11:19 pm
Localitate: Bucuresti
Contact:

Mesajde arahne » Sâm Apr 02, 2005 2:09 pm

Pai in primul rand am impresia ca incurci ordinea operatiunilor.

Intai trimiti parola si apoi o actualizezi in baza de date.

functia PASSWORD apartine MySQL-ului si cripteaza ireversibil stringul dat.
Good things always come in small packages.

rem
Average Member
Mesaje: 62
Membru din: Mie Noi 10, 2004 11:50 am
Localitate: Cluj-Napoca
Contact:

Mesajde rem » Sâm Apr 02, 2005 2:22 pm

nu, ordinea operatiunilor nu o incurc, din moment ce-mi trimite parola originala dar criptata...

dupa ce am postat thread-ul asta... am mai facut niste sapaturi si intr-adevar am aflat si eu (cred ca eram singurul care nu stiam) de ireversibilitatea criptarii cu PASSWORD...

acum, caut cate ceva despre encode / decode...

multumesc

Avatar utilizator
biban
Senior Member
Mesaje: 204
Membru din: Dum Apr 13, 2003 8:23 pm
Localitate: Giurgiu
Contact:

Mesajde biban » Sâm Apr 02, 2005 3:15 pm

nu prea ai treaba cu encode/decode.
incerca sa generezi o parola aleatoare sa o pui in baza de date criptata dupa metoda care vrei tu si sa o comunici si utilizatorului si sa o schimbe el daca vrea...

rem
Average Member
Mesaje: 62
Membru din: Mie Noi 10, 2004 11:50 am
Localitate: Cluj-Napoca
Contact:

Mesajde rem » Sâm Apr 02, 2005 3:27 pm

e si asta o idee, multam... dar daca vrea sa-si schimbe parola generata intr-un mod aleator (ex: fhryu56) in parolamea, eu vreau sa-i fie trimisa prin email noua parola... si in cazul asta ma intorc de unde am plecat.

e posibil sa ma insel, sunt incepator, dar cred ca unica solutie e criptare/decriptare... si cu altceva pot sa fac chestia asta in PHP + MySQL? Exista alternative la encode/decode?

mai ales ca deja ii pusa la punct si sesiunea de verificare user/password...
pentru mine se cam complica ecuatia dar... what a hell... nu tre sa trag la coasa ! PHP rules ![/b]

Avatar utilizator
biban
Senior Member
Mesaje: 204
Membru din: Dum Apr 13, 2003 8:23 pm
Localitate: Giurgiu
Contact:

Mesajde biban » Sâm Apr 02, 2005 3:47 pm

pai nu e nici o problema ca se face totul dintr-o singura sesiune de lucru:
schimbi parola si imediat o trimiti prin mail (cu functia mail()).

rem
Average Member
Mesaje: 62
Membru din: Mie Noi 10, 2004 11:50 am
Localitate: Cluj-Napoca
Contact:

Mesajde rem » Sâm Apr 02, 2005 4:10 pm


Avatar utilizator
biban
Senior Member
Mesaje: 204
Membru din: Dum Apr 13, 2003 8:23 pm
Localitate: Giurgiu
Contact:

Mesajde biban » Sâm Apr 02, 2005 4:18 pm

cred ca inteleg...
uite cum sta treaba: verifici daca a fost introdus ceva la parola
-daca da atunci updatezi toate campurile
-daca nu faci un update la toate campurile mai putin parola

ceva de genul
if(!empty($newpass))
{
$updateQuery = "UPDATE users SET user='$user',pass=PASSWORD('$newpass'),firstname='$firstname',surname='$surname',email='$email' WHERE ID = ". $HTTP_GET_VARS['id'];
}
else
$updateQuery = "UPDATE users SET user='$user',firstname='$firstname',surname='$surname',email='$email' WHERE ID = ". $HTTP_GET_VARS['id'];

Avatar utilizator
ExcalIbvr
Senior Member
Mesaje: 1105
Membru din: Dum Mai 02, 2004 10:56 pm
Localitate: Oradea
Contact:

Mesajde ExcalIbvr » Sâm Apr 02, 2005 6:25 pm

Exista algoritmi de criptare/decriptare, precum si algoritmi one-way, doar pt. criptare.
Cea mai simpla/rapida varianta pt. criptare/decriptare este base64_encode(), respectiv base64_decode().



rem
Average Member
Mesaje: 62
Membru din: Mie Noi 10, 2004 11:50 am
Localitate: Cluj-Napoca
Contact:

Mesajde rem » Sâm Apr 02, 2005 7:54 pm


rem
Average Member
Mesaje: 62
Membru din: Mie Noi 10, 2004 11:50 am
Localitate: Cluj-Napoca
Contact:

Mesajde rem » Sâm Apr 02, 2005 8:02 pm


Avatar utilizator
ExcalIbvr
Senior Member
Mesaje: 1105
Membru din: Dum Mai 02, 2004 10:56 pm
Localitate: Oradea
Contact:

Mesajde ExcalIbvr » Dum Apr 03, 2005 12:12 am

base64_encode() / decode este functie PHP.
O aplici unei variabile inainte de a o introduce in MySQL.

In general, se foloseste criptare one-way (md5() e cel mai uzual) pt. stocarea parolelor in baza de date. In cazul in care un client/user isi uita parola, fie ii pui manual o parola noua, fie prevezi chestia asta si implementezi un algoritm "Secret question - to create a new password".

Succes!





rem
Average Member
Mesaje: 62
Membru din: Mie Noi 10, 2004 11:50 am
Localitate: Cluj-Napoca
Contact:

Mesajde rem » Dum Apr 03, 2005 2:02 am

Multumesc frumos pentru ajutor... Pentru mine conteaza foarte mult, sunt lucruri pe care nu aveam de unde sa le stiu iar cand n-ai pe cine sa intrebi... cam bati pasul pe loc !

Toate cele bune.

Avatar utilizator
LAurenZIO_4U
Average Member
Mesaje: 93
Membru din: Joi Noi 04, 2004 12:08 pm
Localitate: Timisoara

Mesajde LAurenZIO_4U » Lun Apr 04, 2005 1:42 pm


Avatar utilizator
ExcalIbvr
Senior Member
Mesaje: 1105
Membru din: Dum Mai 02, 2004 10:56 pm
Localitate: Oradea
Contact:

Mesajde ExcalIbvr » Lun Apr 04, 2005 3:15 pm

Pt. naked eye base64_* e functie de criptare. Doar atat. Evident ca md5()...






Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 23 vizitatori