diff options
| author | asiekierka <asiekierka@gmail.com> | 2012-12-22 18:16:09 +0100 |
|---|---|---|
| committer | asiekierka <asiekierka@gmail.com> | 2012-12-22 18:16:09 +0100 |
| commit | 091216082aafb74b95ff4f79b3acc5e7184db404 (patch) | |
| tree | 60add7f6daf9b59c94e187458788f271da12c1a1 /inc | |
| parent | 22654344714a85aebb7ecc8663595a1cf5dbdef6 (diff) | |
fixed to actually work
Diffstat (limited to 'inc')
| -rw-r--r-- | inc/ic-encrypt.php | 10 | ||||
| -rw-r--r-- | inc/imgcaptcha.php | 24 |
2 files changed, 21 insertions, 13 deletions
diff --git a/inc/ic-encrypt.php b/inc/ic-encrypt.php index c0f499bd..5d73126b 100644 --- a/inc/ic-encrypt.php +++ b/inc/ic-encrypt.php @@ -1,8 +1,6 @@ <?php // Z internetow. class Encryption { - var $skey = $config["imgcaptcha_key"]; - public function safe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); @@ -18,21 +16,21 @@ class Encryption { return base64_decode($data); } - public function encode($value){ + public function encode($key, $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); + $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv); return trim($this->safe_b64encode($crypttext)); } - public function decode($value){ + public function decode($key, $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); + $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv); return trim($decrypttext); } } diff --git a/inc/imgcaptcha.php b/inc/imgcaptcha.php index 77441fce..ab6db68f 100644 --- a/inc/imgcaptcha.php +++ b/inc/imgcaptcha.php @@ -1,19 +1,25 @@ <?php // Wiem, ze ten kod to czysta ohyda. Coz. - require("ic-encrypt.php"); + require_once("inc/functions.php"); + require_once("inc/ic-encrypt.php"); + + global $config; + function getImages() { - $lines = split("\n",file_get_contents($config["imgcaptcha_list"])); - for($i=0;$i<count($lines);$i++) { $lines[$i] = split(",",$lines[$i]); } + global $config; + $lines = explode("\n",file_get_contents($config["imgcaptcha_list"])); + for($i=0;$i<count($lines);$i++) { $lines[$i] = explode(",",$lines[$i]); } return $lines; } function getIPath($img) { + global $config; return $config["imgcaptcha_images"] . "/" . $img; } function pickImage($lines) { $src = FALSE; while($src == FALSE) { $pick = rand(0,count($lines)-1); - $src = imagecreatefrompng(getIPath($lines[$pick][0])); + if($lines[$pick][0] != "") $src = imagecreatefrompng(getIPath($lines[$pick][0])); } imagedestroy($src); return $pick; @@ -33,16 +39,18 @@ return $str; } function generateCaptchaHash() { + global $config; $lines = getImages(); $pick = pickImage($lines); $enctext = $pick . ",," . time() . ",," . $_SERVER["REMOTE_ADDR"] . ",," . randString(12); $converter = new Encryption; - return $converter->encode($enctext); + return $converter->encode($config["imgcaptcha_key"],$enctext); } function ic_verifyHash($enctext, $output) { + global $config; //print "VERIFY: " . $enctext . " " . $output . "<br>"; $converter = new Encryption; - $dectext = split(",,",$converter->decode($enctext)); + $dectext = explode(",,",$converter->decode($config["imgcaptcha_key"],$enctext)); if(count($dectext)<4) return true; $lines = getImages(); $pick = $dectext[0]; @@ -56,14 +64,16 @@ } function getPick($enctext) { + global $config; $converter = new Encryption; - $dectext = split(",,",$converter->decode($enctext)); + $dectext = explode(",,",$converter->decode($config["imgcaptcha_key"],$enctext)); if(count($dectext)<=1) return; //SC $lines = getImages(); return $dectext[0]; } function generateImage($enctext) { + global $config; $lines = getImages(); $pick = getPick($enctext); if(!isset($lines[$pick])) return; //SC |
