http://localhost/veriguncelle&id=46d...c6db7b1b4a5015
bir linke tıklandığında href'i yukarıdaki gibi olacak. Orada id, direk id değeri değil de yukarıdaki gibi şifrelenmiş olarak gönderilecek.
veriguncelle sayfasında da get ile id değerini alacağım ve bu sayfada gerçek id değerine dönüştürüp kullanacağım.
md5, sha1 gibi şifreleme yöntemlerini kullandım fakat onların encode,decode özelliği yokmuş. Bu sorunumu nasıl çözebilirim?
Php Şifreleme Fonksiyonu
10
●1.982
- 12-05-2016, 22:44:34hocam çözülmesinden yana sıkınıt yok ise base64 kullana bilirsin.
- 12-05-2016, 23:36:01aslında md5(sha1(md5 böyle iç içe yapıp tersinde ilk değere ulaşmayı planlıyordum ama tersine izin vermiyormuş. base64 ten başka tersine çevrilabilen tür varsa iç içe onları da kullanabilirim.Minimalite adlı üyeden alıntı: mesajı görüntüle
- 13-05-2016, 14:41:04http://php.net/manual/tr/function.mcrypt-encrypt.phpKaraman adlı üyeden alıntı: mesajı görüntüle
http://php.net/manual/tr/function.mcrypt-decrypt.php
Bunları kullanabilirsin. - 14-05-2016, 20:27:28
class Encryption { var $skey = "aAaA"; public function safe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data; } public function safe_b64decode($string) { $data = str_replace(array('-','_'),array('+','/'),$string); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr('====', $mod4); } return base64_decode($data); } public function encode($value){ if(!$value){return false;} $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv); return trim($this->safe_b64encode($crypttext)); } public function decode($value){ if(!$value){return false;} $crypttext = $this->safe_b64decode($value); $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv); return trim($decrypttext); } } $sifrele = new Encryption;Şifreleme
$sifrele->encode('veri');Şifreyi Çözme
$sifrele->decode('veri');Youtube un url mantığı ile hemen hemen aynıdır. - 14-05-2016, 23:18:39Cevabınız için teşekkürler. Fakat Fatal error: Call to undefined function mcrypt_get_iv_size() in C:\AppServ\www\a\b.php on line 25 hatası veriyor.SmlCoder adlı üyeden alıntı: mesajı görüntüle
- 15-05-2016, 03:49:33Şöyle yapabilirsiniz sanıyorum.
Tablonuzda bir sütun daha açın, sifreli_id olsun adı. Sonra yönetim panelinizde ekleme kısmına şöyle bir şey ekleyin;
$sifreli_id = uniqid();
Bu değişkeni ilgili sütuna yazdırın. Eski kayıtlar için ise basit listeleme sorgusunu kullanarak her şifreli id boş olan sütunu bu şekilde doldurun. - 15-05-2016, 15:39:15Kimlik doğrulama veya yönetimden onay bekliyor.Karaman adlı üyeden alıntı: mesajı görüntüle
<?php class SifCoz { var $Bytes = array(54,32,87,65,98,45,16,94,6,9,8,47,81,62,57,69,37,84,24,18,67,43,12,45,06,13,9,12,36,28,31,42,44,55,11,22,33,66,77); var $Key = "sa4'&''!^(%+sd54)&'43"; function Sifrele($veri) { $veri = base64_encode($this->Key."©".$veri); $bSay = count($this->Bytes)-1; $rNum = rand(0,$bSay); $byte = $this->Bytes[$rNum]; for($i=0;$i<=strlen($veri)-1;$i++) { @$reveri.= hex2bin(dechex(hexdec(bin2hex($veri[$i]))+$byte)); } return base64_encode($reveri."$.$".$rNum); } function Coz($veri) { $veri = base64_decode($veri); $DecS = explode('$.$',$veri); $veri = $DecS[0]; $byte = $this->Bytes[$DecS[1]]; for($i=0;$i<=strlen($veri)-1;$i++) { @$reveri.= hex2bin(dechex(hexdec(bin2hex($veri[$i]))-$byte)); } $reveri = base64_decode($reveri); $reveri = explode("©",$reveri); return $reveri[1]; } } $sifcoz = new SifCoz; $yazi = "R10.net türkiye'nin webmaster forumu."; $sifrelenmis = $sifcoz->Sifrele($yazi); $cozulmus = $sifcoz->Coz($sifrelenmis); echo $sifrelenmis."<br>".$cozulmus; ?>Edit:böylesi daha iyi gibi
Kendimce şöyle birşey yapmıştım. İşinize yarar belki
$key değişkenindeki değerleri 10 20 haneli rastgele harf sayı ile değiştirin hocam. Key ne kadar uzun olursa şifrelenmiş veride o kadar uzun ve güçlü olur
Çıktı:
azpNOFKBYXZSgU5tU0tdems6WTlWS3N1UoJZgn95dFtVXEl9an VeOFFQXEx+UFJ6aWB0dFI6PXhqcUo7Yl9SfGFgVjhiYFFvYnVB gWxfOTlUb0VFJC4kMTA=
R10.net türkiye'nin webmaster forumu.
