Hey all.
I am trying to get encryption working for my site.
I have found some code and set up a test bed for it, but it fails to return
the same value after the 26th item. I was hoping someone could take a look
and maybe tell me why? There is very little help out there for encryption.
If you know of a working example/tutorial, can you please reply with a link?
Many thanks,
Darren
<?
global $arrAlphaVals;
global $intTot;
$intTot = 5000;
$arrAlphaVals = array();
function init()
{
global $arrAlphaVals;
global $intTot;
for ($i=0;$i<$intTot;$i++)
{
$arrAlphaVals[$i] = sprintf("%016s", strtoupper(dechex($i)));
}
return $arrAlphaVals;
}
function main()
{
global $arrAlphaVals;
global $intTot;
init();
$arrError = array();
echo "Encryption test<br>\n";
for ($i=0;$i<$intTot;$i++)
{
if ($i%1000 == 0)
{
echo $i."<br>";
flush();
}
$strInit = $arrAlphaVals[$i];
$strEncVal = encryptIt($strInit);
$strOut = decryptIt($strEncVal);
//echo "In: ".$strInit.", Enc: ".$strEncVal.", Out: ".$strOut."<br>";
if ($strOut != $strInit)
{
$strError .= "Failed on: ".$i."<br>\n";
$arrError[$strInit] = $strOut;
}
}
if (sizeof($arrError) > 0)
{
// There were errors
foreach ($arrError as $strKey => $strVal)
{
echo "Input: '".$strKey."' failed with result
'".$strVal."'<br>\n";
}
echo "<hr>".$strError;
}
echo "<hr>Tested ".$i." cases. Done.<br>\n";
}
function encryptIt($strIn)
{
$key = "biteme";
$strRet = _mencrypt($strIn, $key);
return $strRet;
}
function decryptIt($strIn)
{
$key = "biteme";
$strRet = _mdecrypt($strIn, $key);
return $strRet;
}
function _mencrypt($input,$key)
{
$input = str_replace("\n","",$input);
$input = str_replace("\t","",$input);
$input = str_replace("\r","",$input);
$key = substr(md5($key),0,24);
$td = mcrypt_module_open ('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
mcrypt_generic_init ($td, $key, $iv);
$encrypted_data = mcrypt_generic ($td, $input);
mcrypt_generic_deinit ($td);
mcrypt_module_close ($td);
return trim(chop(base64_encode($encrypted_data)));
}
//$input - stuff to decrypt
//$key - the secret key to use
function _mdecrypt($input,$key)
{
$input = str_replace("\n","",$input);
$input = str_replace("\t","",$input);
$input = str_replace("\r","",$input);
$input = trim(chop(base64_decode($input)));
$td = mcrypt_module_open ('tripledes', '', 'ecb', '');
$key = substr(md5($key),0,24);
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
mcrypt_generic_init ($td, $key, $iv);
$decrypted_data = mdecrypt_generic ($td, $input);
mcrypt_generic_deinit ($td);
mcrypt_module_close ($td);
return trim(chop($decrypted_data));
}
main();
?>
The original encryption and decryption code came from Jeremy Stansfield
(http://www.weberdev.com/get_example-3752.html)
Thanks again!
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php