MD5 enkripcija lozinke - problem za korisnike

1

MD5 enkripcija lozinke - problem za korisnike

offline
  • Daffa  Male
  • Novi MyCity građanin
  • Pridružio: 20 Avg 2008
  • Poruke: 25
  • Gde živiš: Podgorica

Pozdrav svima.

Imam jednu nedoumicu u vezi MD5 enkripcije lozinki. Ugradio sam tu enkripciju u svoju register.php skriptu, i sve radi bez ikakvih problema, međutim, svi znamo kakvog je oblika ispis nakon enkripcije, tj., gotovo je nemoguće zapamtiti takvu lozinku. Mene zanima kako izvesti da korisnik, na login formi, unosi svoj oblik lozinke koji je odabrao pri registraciji, a da se ta lozinka u bazi ispisuje kao enkripcija? Stanje kod mene trenutno je takvo da korisnik na login formi mora da unese enkriptovani oblik lozinke.

Ako ikako moze neko detaljnije objasnjenje o ovome, bio bih mnogo zahvalan. Vec sam na drugim forumima dobijao neke predloge, ali se nisam bas snasao.

Hvala na odgovorima, unaprijed.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Ti enkripciju treba da radis u skripti nakon sto korisnik unese lozinku, a ne da korisnik unese vec enkriptovanu lozinku jer na taj nacin nisi nista zastitio.



offline
  • Daffa  Male
  • Novi MyCity građanin
  • Pridružio: 20 Avg 2008
  • Poruke: 25
  • Gde živiš: Podgorica

U redu je to, vec sam rekao, to tako i radi. Korisnik pri registraciji odabere svoju lozinku koja se preko md5 enkripcije pretvara u oblik od 36 karaktera. Problem nastaje pri logovanju korisnika. Tada (po sadasnjoj situaciji) korisnik mora da unese kriptovani oblik lozinke da bi se uspjesno logovao. E ja bih sad to da promijenim; da korisnik unosi lozinku koju je odabrao pri registraciji, a da se u bazi to poredi sa md5 lozinkom. Nadam se da me razumijes.

Hvala na brzom odgovoru.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Pa treba u formi za logovanje isto da lozinku pretvoris u MD5 i da taj rezultat uporedis sa MD5 iz baze.
Mozes koristiti kod koji si koristio u register.php da bi pretvorio lozinku u hash.

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

pa kada proveravas lozinku sa onom u bazi uradi nesto ovako u php-u
if($baza_pass == $baza_forma) ...
ili ako radis u sql upitu pretragu po username i pass-u onda samo radi
select user, pass from tabela where user = $user_forma and pass = md5($pass_forma)...

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

Covek ne konta smisao md5 enkripcije Neutral

da probam da objasnim:

kada se korisnik registruje, desi se ovo:
korisnik unese svoj pass -> skripta pretvori pass u md5 oblik -> upise taj oblik u bazu

sve sto ti sada treba je to isto:
korisnik unese svoj pass -> skripta pretvori pass u md5 oblik -> proveri se da li se taj oblik poklapa sa onim koji je upisan u bazu

dakle, tamo kod provere passworda, prosto uradi:
$kriptovan = md5($uneti_pass);
i onda proveri da li se $kriptovan poklapa sa onim iz baze.

offline
  • Daffa  Male
  • Novi MyCity građanin
  • Pridružio: 20 Avg 2008
  • Poruke: 25
  • Gde živiš: Podgorica

Napisano: 03 Maj 2009 16:21

Peca ::Covek ne konta smisao md5 enkripcije Neutral

Ja da ne kontam smisao md5 enkripcije, ne bih se trudio da je ugradjujem u sajt uopste.

Peca ::sve sto ti sada treba je to isto:
korisnik unese svoj pass -> skripta pretvori pass u md5 oblik -> proveri se da li se taj oblik poklapa sa onim koji je upisan u bazu

dakle, tamo kod provere passworda, prosto uradi:
$kriptovan = md5($uneti_pass);
i onda proveri da li se $kriptovan poklapa sa onim iz baze.


E, to je odgovor koji sam trazio. Ja u stvari nisam znao na kojoj poziciji tacno da postavim enkripciju za provjeru.

Nadam se da vas nisam smarao sa svojim (pocetnickim) pitanjem. Zahvaljujem na odgovorima momci.

Dopuna: 03 Maj 2009 22:54

Je l' bi to trebalo ovako da izgleda:

$upit = "select * from korisnik where user = '".$user."' and pass='".$pass."' "; $rez = mysql_query($upit); $br = mysql_num_rows($rez); if ($br>0) {    $_SESSION['username']=$user;    $u=$_SESSION['username'];        $_SESSION['password']= md5($pass);    $p=$_SESSION['password'];           echo "<br><br><h1><strong>Dobrodo&Scaron;li $u.</strong></h1>";    } else {    echo "Va&scaron;i podaci nisu ispravni. ";    echo "<center><a href=\"javascript:history.back()\" >Nazad</a></center>";    exit; }?

offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

Ne.
Otprilike ovako:

$pass=md5($_POST['pass']); $user=$_POST['user']; $sql=mysql_query("SELECT * FROM korisnik WHERE user='$user' AND pass='$pass'"); if($rez=mysql_fetch_array($sql)) {     echo "Welcome"; } else {     echo "Wrong user/pass"; }

offline
  • Daffa  Male
  • Novi MyCity građanin
  • Pridružio: 20 Avg 2008
  • Poruke: 25
  • Gde živiš: Podgorica

Jesi li siguran da bi to tako trebalo da bude?

Evo greske koju dobijam:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\baza2\login.php on line 19

Za svaki slucaj, evo kompletnog koda, mozda je greska negdje drugo:
<?php require("baza.php"); session_start(); baza(); $user = $_REQUEST['user']; $pass = $_REQUEST['pass']; $user = addslashes($user); $pass = addslashes($pass); $user = trim($user); $pass = trim ($pass); $pass=md5($_POST['pass']); $user=$_POST['user']; $upit = "select * from korisnik where user = '".$user."' and pass='".$pass."' "; if($rez=mysql_fetch_array($upit)) {       echo "<br><br><h1><strong>Dobrodo&Scaron;li $u.</strong></h1>";    } else {    echo "Va&scaron;i podaci nisu ispravni. ";    echo "<center><a href=\"javascript:history.back()\" >Nazad</a></center>";    exit; } ?>

offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

Greška je jer si pozvao mysql_fetch_array nad promenljivom $upit koja je string a ne mysql query.

A evo i par saveta...
Nemoj da koristiš REQUEST metod ako tražiš da neko kuca pass već POST.
Umesto addslashes koristi mysql_real_escape_string.

Ko je trenutno na forumu
 

Ukupno su 1032 korisnika na forumu :: 29 registrovanih, 4 sakrivenih i 999 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Alibaba1981, Arahne, ArchaBasha, avijacija, bokisha253, BraneS, brundo65, Dragan777, draganl, Excalibur13, Fabius, GORDI, Kubovac, Litostroton, manda87, Metanoja, nextyamb, Nikolaa11, Posmatrac77OKB, pristinski korpus, radionica1, royst33, shone34, theNedjeljko, Udvar, vaso1, Viktor Petrenko, VJ, VladaKG1980