uzun süredir üzerinde düşündüğüm halde stabil bi mantık geliştiremedim.
Sorunum şudur;
Post edilen veriyi şifrelemek için;
function Encode($data,$pwd)
{
$pwd_length = strlen($pwd);
for ($i = 0; $i < 255; $i++) {
$key[$i] = ord(substr($pwd, ($i % $pwd_length)+1, 1));
$counter[$i] = $i;
}
for ($i = 0; $i < 255; $i++) {
$x = ($x + $counter[$i] + $key[$i]) % 256;
$temp_swap = $counter[$i];
$counter[$i] = $counter[$x];
$counter[$x] = $temp_swap;
}
for ($i = 0; $i < strlen($data); $i++) {
$a = ($a + 1) % 256;
$j = ($j + $counter[$a]) % 256;
$temp = $counter[$a];
$counter[$a] = $counter[$j];
$counter[$j] = $temp;
$k = $counter[(($counter[$a] + $counter[$j]) % 256)];
$Zcipher = ord(substr($data, $i, 1)) ^ $k;
$Zcrypt .= chr($Zcipher);
}
return $Zcrypt;
}bu fonksiyonu kullanıyoruz.Geri Şifreleme (decode) için;
function hex2bin($hexdata) {
for ($i=0;$i<strlen($hexdata);$i+=2) {
$bindata.=chr(hexdec(substr($hexdata,$i,2)));
}
return $bindata;
}bu şekilde fonksiyonumuz var.örnek olarak
$secretPass = 'kljhflk73#OO#*U$O(*YO'; $encodeThis = 'ertan'; // **** // $encoded = bin2hex(Encode($encodeThis,$secretPass)); // şifrelenmiş veri örnegin "akdh09da" gibi bişey $decoded = Encode(hex2bin($encoded),$secretPass); // gerişifrelenmiş veri yani "ertan"şeklinde şifreleme ve geri şifreleme başarılı olarak çalışıyor.
Yanlız sorunum şudur;
$encoded sürekli değişecek, her tıklamada farklı bir deger alacak.
fakat decode edildiğinde bütün farklı değerler yine $encodeThis = 'ertan' ı verecek.
benim düşüncem şu şekilde oldu, fakat pek kullanışlı olmadı:
$secretPass = time();
deyip, sürekli değişen zamanla her tıkta farklı bi encode çıkıyor.
$secretPass 'ı da database de tutturup decode yaparken db den çekiyoruz, her tıklamada db den kullanılmış $secretPass ı silip yeni zamanı $secretPass olarak ekliyoruz.
Acaba başka bir yöntem uygulanabilirmi? aklınıza gelen birşeyler varmı ?
Yardımcı olursanız çok makbule geçecek, acil olarak gerekli çünkü.
Teşekkürler.