RNHC Center.
Buna sunt Genius + +, aş dori să ştiu dacă vă puteţi înregistra pe acest site
RNHC Center.


 
AcasaAcasa  CalendarCalendar  GalerieGalerie  FAQFAQ  CautareCautare  MembriMembri  GrupuriGrupuri  InregistrareInregistrare  Conectare  

Distribuiţi | 
 

 Permisiuni pe baza de imagine

In jos 
AutorMesaj
Genius++
Administrator
Administrator
avatar

Mesaje : 527
Data de inscriere : 26/08/2011
Varsta : 21
Localizare : Bacau

MesajSubiect: Permisiuni pe baza de imagine   Mar Noi 01, 2011 9:24 am

Acesta e un cod PHP care permite autentificare pe un site web (admin panel & other shitz) folosind o imagine. Daca pixelii imaginii uploadate in acel moment corespund cu cei din baza de date, atunci se face autentificarea, altfel nu.
Folderul trebuie sa aiba chmod777 (deoarece imaginea se uploadeaza, i se preiau culorile pixelilor, apoi se sterge).
Nu este ceva extraordinar si iesit din comun, dar ma plictiseam aseara. Care ar fi avantajele ? In primul rand nu se poate ghici parola, deoarece la o imagine de 150x150 obtinem 22500 culori (8 caractere parca). Dezavantaje ? Nu stiu cat de fiabil este si partea care nu imi place mie este ca trebuie mereu uploadata imaginea.
conexiune.php


<?php
$hostname="localhost";
$username="username";
$password="password";
$database="db";

$conexiune=mysql_connect($hostname, $username, $password)
or die ("eroare !");

$bazadate=mysql_select_db($database, $conexiune)
or die ("eroare !");
?>


Apoi cream tabela in BD:


<?php
include ("conexiune.php");

$delete="DROP TABLE IF EXISTS tabela";
mysql_query($delete, $conexiune);

$table="CREATE TABLE tabela (
id int(3) NOT NULL AUTO_INCREMENT,
culoare int(200) NOT NULL ,
PRIMARY KEY (id)) TYPE=MyISAM";
if(mysql_query($table)){
echo "Tabelul a fost creat<br/>";
}
else{
echo "Tabelul nu a fost creat<br/>";
}

?>

Urmeaza culoare.php, fisier care poate fi sters dupa ce este rulat o singura data (acesta preia culoarea pixelilor si o baga in bd):

<?php
include ("conexiune.php");
$im = imagecreatefromjpeg("imagine.jpg");
for($i=0; $i<150; $i++)
{
for($j=0; $j<150; $j++)
{
//Extragem culoarea si o introducem in BD
$rgb = imagecolorat($im, $i, $j);
$sql = "INSERT INTO tabela (culoare) VALUES ('".$rgb."')";
if(mysql_query($sql)) { echo "added"; }
else { mysql_error(); }
}
}

mysql_close($conexiune);
?>

Si partea finala... index.php:


<FORM ENCTYPE="multipart/form-data" ACTION="" METHOD=POST>
Imagine: <INPUT NAME="file_up" TYPE="file">
<INPUT TYPE="submit" name="submit" VALUE="Upload">
</FORM>

<?php
include ("conexiune.php");

if($_POST['submit'])
{
$file_upload="true";
$file_up_size=$_FILES['file_up'][size];
if ($_FILES[file_up][size]>17000)
{
die("dimensiune prea mare");
$file_upload="false";
}
//Lasam doar jpg/jpeg
if (!($_FILES[file_up][type] =="image/jpeg"))
{
die ("nu e jpg/jpeg");
$file_upload="false";
}
$file_name=$_FILES[file_up][name];
//Generam un nume pt. imagine
$x[0]=rand(0, 10);
$x[1]=rand(0, 10);
$x[2]=rand(0, 10);
$x[3]=rand(0, 10);
$x[4]=rand(0, 10);
$add="$x[0]$x[1]$x[2]$x[3]$x[4]$file_name";
if($file_upload=="true")
{
if (file_exists($add))
{
die ("Fisierul ales exista deja pe server.");
}
else
{
if(move_uploaded_file ($_FILES[file_up][tmp_name], $add))
{
$link=$add;
$hand=imagecreatefromjpeg($add);
//Preluam dimensiunile
$x=imagesx($hand);
$y=imagesy($hand);
if ($x!= 150 || $y!=150)
{
unlink($link);
die ("dimensiunile nu corespund");
}
//Daca dimensiunile sunt cele bune...
else
{
$count=0;
for ($i=0; $i<150; $i++)
{
for ($j=0; $j<150; $j++)
{
$pixel[$count]=imagecolorat($hand, $i, $j);
$count++;
}
}
unlink($link);
$count=0;
$asd="true";
//Extragem din DB
$sql="SELECT * FROM tabela";
$sql=mysql_query($sql);
while($row=mysql_fetch_row($sql))
{
if ($pixel[$count]!=$row[1])
{
$asd="false";
}
$count++;
}
if ($asd=="false") { echo "parola gresita !"; }
else if($asd=="true") { echo "asta e parola!"; }
else { die("eroare !"); }
}
} } } }
mysql_close($conexiune);
?>

Sus In jos
Vezi profilul utilizatorului http://rnhc.forumgratuit.ro/
nelutZu
Membru
Membru


Mesaje : 81
Data de inscriere : 11/11/2011
Varsta : 19
Localizare : Bistrita-Nasaud Comuna Rebrisoara

MesajSubiect: Re: Permisiuni pe baza de imagine   Mier Noi 23, 2011 7:56 am

foarte bun
Sus In jos
Vezi profilul utilizatorului
 
Permisiuni pe baza de imagine
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
RNHC Center. :: IT :: Scripturi web-
Mergi direct la: