Location: PHPKode > projects > MyOWNSpace > MyOWNspace_v8.2/www/classes/gifcaptcha/Captcha_Vol_01.funcs.php
<?php
/*
:::::::::::::::::::::::::::::::::::::::::::::::::
::                                             ::
::  Functions for CAPTCHA Validation projects  ::
::                                             ::
::             2007 02. 01. 18.24.             ::
::                                             ::
::                                             ::
:: Try on-line animated CAPTCHA form generator ::
::                                             ::
:: http://gifs.hu/phpclasses/demos/Captcha01/  ::
::                                             ::
::                                             ::
:::::::::::::::::::::::::::::::::::::::::::::::::
*/

/*
:::::::::::::::::::::::::::::::::::::::::::::::::::
::
::	Definitions...
::
*/

define ( PASSWORD, "myowncaptcha" );
define ( CHARSLEN, 3 );

/*
:::::::::::::::::::::::::::::::::::::::::::::::::::
::
::	get_rnd_iv...
::
*/
function get_rnd_iv ( $iv_len ) {
    $iv = '';
    while ( $iv_len-- > 0 ) {
        $iv .= chr ( mt_rand ( ) & 0xFF );
    }
    return $iv;
}

/*
:::::::::::::::::::::::::::::::::::::::::::::::::::
::
::	md5_encrypt...
::
*/
function md5_encrypt ( $plain_text, $password = PASSWORD, $iv_len = 16 ) {
    $plain_text .= "\x13";
    $n = strlen ( $plain_text );
    if ( $n % 16 ) $plain_text .= str_repeat ( "\0", 16 - ( $n % 16 ) );
    $i = 0;
    $enc_text = get_rnd_iv ( $iv_len );
    $iv = substr ( $password ^ $enc_text, 0, 512 );
    while ( $i < $n ) {
        $block = substr ( $plain_text, $i, 16 ) ^ pack ( 'H*', md5 ( $iv ) );
        $enc_text .= $block;
        $iv = substr ( $block . $iv, 0, 512 ) ^ $password;
        $i += 16;
    }
    return base64_encode ( $enc_text );
}

/*
:::::::::::::::::::::::::::::::::::::::::::::::::::
::
::	md5_decrypt...
::
*/
function md5_decrypt ( $enc_text, $password = PASSWORD, $iv_len = 16 ) {
    $enc_text = base64_decode ( $enc_text );
    $n = strlen ( $enc_text );
    $i = $iv_len;
    $plain_text = '';
    $iv = substr ( $password ^ substr ( $enc_text, 0, $iv_len ), 0, 512 );
    while ( $i < $n ) {
        $block = substr ( $enc_text, $i, 16 );
        $plain_text .= $block ^ pack ( 'H*', md5 ( $iv ) );
        $iv = substr ( $block . $iv, 0, 512 ) ^ $password;
        $i += 16;
    }
    return preg_replace ( '/\\x13\\x00*$/', '', $plain_text );
}

/*
:::::::::::::::::::::::::::::::::::::::::::::::::::
::
::	rnd_string...
::
*/
function rnd_string ( $len = CHARSLEN ) {
	$str = "boobppttbbgGGguuuufffddaAaLLLmmMzzZZzqQqwWWwnNNnii";
	$val = 'Myown';

	for ( $i = 0; $i < $len; $i++ ) {
		$val .= $str { rand ( 0, strlen ( $str ) - 1 ) };
	}
    return $val;
}
?>
Return current item: MyOWNSpace