Poslao: 10 Dec 2013 23:53
|
offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
Evo ti jedan prost primer kako pronaci neke reci u fajlu.
$query="majmun";
$fileName = "search.txt";
foreach (explode(" ", strtolower(file_get_contents($fileName)) as $word) {
if (strtolower($query) == $word) {
$found = true;
break;
}
}
echo $found ? "Found" : "Not found";
Mada baza je baza
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 11 Dec 2013 15:04
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Hvala _iKaC, uzeću ovo u obzir za neke druge stvari koje mi budu trebale
Znači da koristim hash() funkciju:
<?php
$sid1 = hash("md5", "AR23OPL7MGL46Y");
?>
I šta onda uradim sa tom hešovanom varijablom? Da li može u jednom fajlu da se napravi nešto ovako:
$sid1 = hash("md5", "// sid1 //");
$sid2 = hash("md5", "// sid2 //");
$sid3 = hash("md5", "// sid3 //");
...
pa da napravim proveru kada korisnik ukuca SID da se taj SID hešuje i uporedi sa ovim već hešovanim varijablama?
|
|
|
|
Poslao: 11 Dec 2013 15:23
|
offline
- |_MeD_|
- Zaslužni građanin
- Pridružio: 02 Okt 2005
- Poruke: 546
|
zaboravi na md5 ili sha1 to je preslabo
treba ti nesto jace sha256, sha512 ili wirpool dodas i jos 32 karaktera random salta
$salt_str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!:;,.';
$salt_str=str_shuffle($salt_str);
$salt=substr($salt_str,0,32);
$hash = hash('whirlpool', $salt.$sifra);
i onda snimis $user, $hash, $salt
pa kad ti sledeci put neko da uzername sifru
ti nadjes tog juzera iscitas $hash $salt
i proveris if($hash == hash('whirlpool', $salt.$sifra));
juseri bi trebali da su jedinstveni, al nemora ako ih ima vise onda proveravas za sve
http://www.php.net/manual/en/function.hash.php
|
|
|
|
Poslao: 11 Dec 2013 15:52
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Napisano: 11 Dec 2013 15:40
Hvala |_MeD_|, sad je već mnogo jasnije $salt.$sifra si mislio kao SID koji korisnik unese?
|_MeD_| ::juseri bi trebali da su jedinstveni, al nemora ako ih ima vise onda proveravas za sve
Nema potrebe, ima oko 5 takvih korisnika i svi imaju jedinstvene nick-ove.
Dopuna: 11 Dec 2013 15:52
Evo ga:
<?php
include 'pristup.php';
bool $pristup;
$nick = $_POST['nick'];
$sifra = $_POST['password'];
$salt_str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!:;,.';
$salt_str=str_shuffle($salt_str);
$salt=substr($salt_str,0,32);
$hash = hash('whirlpool', $sifra);
if($sifra == hash('whirlpool', 'A7D25B9QY1RNXL') & $nick = 'Pera') {
$korisnik = 'Pera';
} else if {
// ...
} else if {
// ...
} else {
// ...
}
?>
EDIT: Stavio sam da proverava i da li je korisnik koji želi da se prijavi uneo tačan nick jer u protivnom će mu džabe koristiti SID ako je vezan za drugog korisnika.
|
|
|
|
Poslao: 11 Dec 2013 16:47
|
offline
- |_MeD_|
- Zaslužni građanin
- Pridružio: 02 Okt 2005
- Poruke: 546
|
NEVALjA
trebaju ti 2 koda prvi da izgenerise sal i hash
i drugi za proveru
prvi sam ti vec dao
$sifra = "A7D25B9QY1RNXL"
$salt_str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!:;,.';
$salt_str=str_shuffle($salt_str);
$salt=substr($salt_str,0,32);
$hash = hash('whirlpool', $sifra);
echo 'H:' . $hash."\n\r S:".$salt;
i onda to iz echo bez H: i S: zapises u neki fajl. Tj sledeci kod.
<?php
$nick = $_POST['nick'];
$sifra = $_POST['password'];
if($nick == 'Pera' && 'ovde_hash_text' == hash('whirlpool', 'odve_salt_text'.$sifra){
$korisnik = 'Pera';
} else if {
// ...
} else if {
// ...
} else {
// ...
}
?>
i tako za svih pet. i ako nekom oces da promenis sifru-CID pokrenes gornji kod
|
|
|
|
Poslao: 12 Dec 2013 21:56
|
offline
- FoxVanis
- Ugledni građanin
- Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
- Pridružio: 13 Jun 2010
- Poruke: 307
- Gde živiš: Subotica
|
Ajde da se nemučite daću vam deo mog kryptera kojim generišem svakom korisniku unikatni ključ koji koristim za svoje portale. Na mojim nekim ozbiljnijim portalima korisnici nemaju ID nigde unutar Cookie linka ili sesije, nemaju hash od šifre nego imaju kriptovan poseban ID i kriptovanu posebnu šifru koje se stavi gore u kookie ili sesiju tako da niko praktično nemože da provali koji je zapravo ID kod ili hash za šifru jer javno ne postoji ali unutar PHP i baze se odvija sve kako je svako navikao.
Iz mog ličnog kryptera sam izbacio dosta elemenata i dodao par stvari pa sam upakovao jednu zgodnu osnovu na koju se neko od vas može nadograditi bilo kada. Neko će reći da je preterano ali ima smisla i imam debele razloge zašto sam ovako radio.
class crypter
{
private $cr = NULL;
private $uq = NULL;
public function password($username=false, $password=false)
{
if(!empty($username) and !empty($password))
{
$a=$b=$c=$j=$e=$f=array();
$a=str_split($username);sort($a);
$b=str_split($password);sort($b);
$c=str_split($this->a());sort($c);
foreach($a as $y){$j[]=trim($y);}
foreach($b as $x){$e[]=trim($x);}
foreach($c as $q){$f[]=trim($q);}
$o=join("#",$j).join("&",$e).join("$",$f);
return md5($o);
}
return false;
}
/*==================================*/
public function crypter()
{
// tvoje ime i prezime kao autora, verzija, bilo šta ubaci i posle NE MENJAJ
$this->cr = 'FoxVanis crypter version 5.0.3';
// tvoj tajni ključ za taj sajt - unesi bilo šta ti padne na pamet i posle NE MENJAJ
$this->uq = 'sjrg8fg74sjfg3j4gf78fg9';
}
private function a()
{
$k=hash_hmac("crc32", $this->cr, $this->uq);
$t=$this->uq;
$i=mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$i=mcrypt_create_iv($i, MCRYPT_RAND);
$a=mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $k, $t, MCRYPT_MODE_ECB, $i);
return trim($a);
}
}
// Pozivaš crypter u PHP kodu
$crypt = new crypter();
/********* UPOTREBA *********/
$username=$_POST['username'];
$password=$_POST['password'];
$hash=$crypt->password($username, $password);
if($hash)
{
/*
* 1) nastavi dalje i upiši podatke u bazu
* 2) nastavi dalje i uporedi podatak sa bazom i postavi cookie ili sesiju
*/
}
To je praktično to!
Ona 2 dela u funkciji crypter gde se upisuje ime i tajni ključ je praktično deo gde licenciraš svoj rad i vežeš za svaki podatak. Staviš tvoje ime i u prvi deo i to ostaviš. Onaj drugi deo gde je kao tajni ključ - možeš upisati bilo štas bez razmaka ili sa i to ti je unikatni ključ za taj sajt ili CMS ako ćeš isti CMS koristiti više puta na drugim sajtovima. Na taj način zaštićuješ da ako neko pokuša da prenese cookie sa jednog sajta na drugi što nije nemoguće, neće uspeti da sa istim hashom uđe na drugi sajt čak ni da imaju zajedničko korisničko ime i šifru. Tako isto možeš generisati ID za svaki sadržaj, ili za bilo šta i upoređuješ. Nema šanse da se dekriptuje jer jedino ti znaš koji je tvoj kod. Izmena jednog karaktera menja sve karaktere u crypteru i ako imaš korisnike ili sadržaje koji već imaju kriptovane ID, sve se blokira zato budi pažljiv.
|
|
|
|