Arkadaşlar merhaba,

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.