fixed to actually work
This commit is contained in:
parent
2265434471
commit
091216082a
|
@ -1,8 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
// Z internetow.
|
// Z internetow.
|
||||||
class Encryption {
|
class Encryption {
|
||||||
var $skey = $config["imgcaptcha_key"];
|
|
||||||
|
|
||||||
public function safe_b64encode($string) {
|
public function safe_b64encode($string) {
|
||||||
$data = base64_encode($string);
|
$data = base64_encode($string);
|
||||||
$data = str_replace(array('+','/','='),array('-','_',''),$data);
|
$data = str_replace(array('+','/','='),array('-','_',''),$data);
|
||||||
|
@ -18,21 +16,21 @@ class Encryption {
|
||||||
return base64_decode($data);
|
return base64_decode($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function encode($value){
|
public function encode($key, $value){
|
||||||
if(!$value){return false;}
|
if(!$value){return false;}
|
||||||
$text = $value;
|
$text = $value;
|
||||||
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
|
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
|
||||||
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
|
$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));
|
return trim($this->safe_b64encode($crypttext));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function decode($value){
|
public function decode($key, $value){
|
||||||
if(!$value){return false;}
|
if(!$value){return false;}
|
||||||
$crypttext = $this->safe_b64decode($value);
|
$crypttext = $this->safe_b64decode($value);
|
||||||
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
|
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
|
||||||
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
|
$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);
|
return trim($decrypttext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,25 @@
|
||||||
<?php
|
<?php
|
||||||
// Wiem, ze ten kod to czysta ohyda. Coz.
|
// 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() {
|
function getImages() {
|
||||||
$lines = split("\n",file_get_contents($config["imgcaptcha_list"]));
|
global $config;
|
||||||
for($i=0;$i<count($lines);$i++) { $lines[$i] = split(",",$lines[$i]); }
|
$lines = explode("\n",file_get_contents($config["imgcaptcha_list"]));
|
||||||
|
for($i=0;$i<count($lines);$i++) { $lines[$i] = explode(",",$lines[$i]); }
|
||||||
return $lines;
|
return $lines;
|
||||||
}
|
}
|
||||||
function getIPath($img) {
|
function getIPath($img) {
|
||||||
|
global $config;
|
||||||
return $config["imgcaptcha_images"] . "/" . $img;
|
return $config["imgcaptcha_images"] . "/" . $img;
|
||||||
}
|
}
|
||||||
function pickImage($lines) {
|
function pickImage($lines) {
|
||||||
$src = FALSE;
|
$src = FALSE;
|
||||||
while($src == FALSE) {
|
while($src == FALSE) {
|
||||||
$pick = rand(0,count($lines)-1);
|
$pick = rand(0,count($lines)-1);
|
||||||
$src = imagecreatefrompng(getIPath($lines[$pick][0]));
|
if($lines[$pick][0] != "") $src = imagecreatefrompng(getIPath($lines[$pick][0]));
|
||||||
}
|
}
|
||||||
imagedestroy($src);
|
imagedestroy($src);
|
||||||
return $pick;
|
return $pick;
|
||||||
|
@ -33,16 +39,18 @@
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
function generateCaptchaHash() {
|
function generateCaptchaHash() {
|
||||||
|
global $config;
|
||||||
$lines = getImages();
|
$lines = getImages();
|
||||||
$pick = pickImage($lines);
|
$pick = pickImage($lines);
|
||||||
$enctext = $pick . ",," . time() . ",," . $_SERVER["REMOTE_ADDR"] . ",," . randString(12);
|
$enctext = $pick . ",," . time() . ",," . $_SERVER["REMOTE_ADDR"] . ",," . randString(12);
|
||||||
$converter = new Encryption;
|
$converter = new Encryption;
|
||||||
return $converter->encode($enctext);
|
return $converter->encode($config["imgcaptcha_key"],$enctext);
|
||||||
}
|
}
|
||||||
function ic_verifyHash($enctext, $output) {
|
function ic_verifyHash($enctext, $output) {
|
||||||
|
global $config;
|
||||||
//print "VERIFY: " . $enctext . " " . $output . "<br>";
|
//print "VERIFY: " . $enctext . " " . $output . "<br>";
|
||||||
$converter = new Encryption;
|
$converter = new Encryption;
|
||||||
$dectext = split(",,",$converter->decode($enctext));
|
$dectext = explode(",,",$converter->decode($config["imgcaptcha_key"],$enctext));
|
||||||
if(count($dectext)<4) return true;
|
if(count($dectext)<4) return true;
|
||||||
$lines = getImages();
|
$lines = getImages();
|
||||||
$pick = $dectext[0];
|
$pick = $dectext[0];
|
||||||
|
@ -56,14 +64,16 @@
|
||||||
}
|
}
|
||||||
function getPick($enctext)
|
function getPick($enctext)
|
||||||
{
|
{
|
||||||
|
global $config;
|
||||||
$converter = new Encryption;
|
$converter = new Encryption;
|
||||||
$dectext = split(",,",$converter->decode($enctext));
|
$dectext = explode(",,",$converter->decode($config["imgcaptcha_key"],$enctext));
|
||||||
if(count($dectext)<=1) return; //SC
|
if(count($dectext)<=1) return; //SC
|
||||||
$lines = getImages();
|
$lines = getImages();
|
||||||
return $dectext[0];
|
return $dectext[0];
|
||||||
}
|
}
|
||||||
function generateImage($enctext)
|
function generateImage($enctext)
|
||||||
{
|
{
|
||||||
|
global $config;
|
||||||
$lines = getImages();
|
$lines = getImages();
|
||||||
$pick = getPick($enctext);
|
$pick = getPick($enctext);
|
||||||
if(!isset($lines[$pick])) return; //SC
|
if(!isset($lines[$pick])) return; //SC
|
||||||
|
|
8
post.php
8
post.php
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
require 'inc/functions.php';
|
require 'inc/functions.php';
|
||||||
require 'inc/anti-bot.php';
|
require 'inc/anti-bot.php';
|
||||||
|
require 'inc/imgcaptcha.php';
|
||||||
|
|
||||||
// Fix for magic quotes
|
// Fix for magic quotes
|
||||||
if (get_magic_quotes_gpc()) {
|
if (get_magic_quotes_gpc()) {
|
||||||
|
@ -192,7 +193,12 @@ if (isset($_POST['delete'])) {
|
||||||
error($config['error']['captcha']);
|
error($config['error']['captcha']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($config['imgcaptcha']) {
|
||||||
|
if (!isset($_POST['imgcaptcha_verify']) || !isset($_POST['imgcaptcha_hash']))
|
||||||
|
error($config['error']['bot']);
|
||||||
|
if (ic_verifyHash($_POST['imgcaptcha_hash'],$_POST['imgcaptcha_verify']))
|
||||||
|
error($config['error']['captcha']);
|
||||||
|
}
|
||||||
if ($post['mod'] = isset($_POST['mod']) && $_POST['mod']) {
|
if ($post['mod'] = isset($_POST['mod']) && $_POST['mod']) {
|
||||||
require 'inc/mod.php';
|
require 'inc/mod.php';
|
||||||
if (!$mod) {
|
if (!$mod) {
|
||||||
|
|
Loading…
Reference in New Issue