summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorasiekierka <asiekierka@gmail.com>2012-12-22 18:16:09 +0100
committerasiekierka <asiekierka@gmail.com>2012-12-22 18:16:09 +0100
commit091216082aafb74b95ff4f79b3acc5e7184db404 (patch)
tree60add7f6daf9b59c94e187458788f271da12c1a1 /inc
parent22654344714a85aebb7ecc8663595a1cf5dbdef6 (diff)
fixed to actually work
Diffstat (limited to 'inc')
-rw-r--r--inc/ic-encrypt.php10
-rw-r--r--inc/imgcaptcha.php24
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