3 function base64_url_encode($input) {
4 return strtr(base64_encode($input), '+=', '_-');
7 function base64_url_decode($input) {
8 return base64_decode(strtr($input, '_-', '+='));
15 return substr($s, 0, 4);
18 function sha1_encrypt($iv, $pass, $plain)
21 $len = strlen($plain);
25 $cipher = sha1("/$iv/$cipher/$i/$pass/", true);
26 # echo "key: /$cipher/$i/$pass/<br />\n";
27 $pool = strlen($cipher); // 20
28 $chunk = substr($plain, $i, $pool);
30 $r = $cipher ^
$chunk;
36 $plaintext = 'test34543 ggopkp 45 34 56 4kl lkklklfwekjerkw rweklj lkj54iojfjddfklrjrltjertr etkrjekltjd';
39 echo "iv_r: $iv_r <br />\n";
40 $iv ='abcdefghjklmnopqrst' ;
42 $enc = sha1_encrypt($iv_r, $iv, $plaintext);
46 $benc = base64_url_encode($iv_r . $enc);
47 echo $benc . " <br />\n";
48 #echo ase64_url_encode($enc) . " <br />\n";
53 $dbenc = base64_url_decode($benc);
54 $iv_r2 = substr($dbenc, 0,4);
55 echo "iv_r: $iv_r2 <br />\n";
56 echo substr($dbenc,4);
57 $dec = sha1_encrypt($iv_r, $iv, substr($dbenc,4));
59 echo "'$dec' <br />\n";
60 if ($dec == $plaintext) { echo ' OK '; }
64 echo urlencode("_-=,.");