phpLens
 home  products examples manual  faq support forum  contact news  login store

Forums: phplens   adodb
Forums:   ADOdb Help & Dev:   Replies 
New ReplySearch
Topic: SHA1 Session Encryption
author: Simon Holywell   created: 23-10-2005 07:22:54 AM
Nothing special but I prefer SHA1 to MD5 so I modified crypt.inc.php. Perhaps this encryption scheme could be added to up coming versions of ADODB?

adodb-encrypt-sha1.php:

if (!defined('ADODB_SESSION')) die();

include_once ADODB_SESSION . '/crypt.inc.php';

/**
*/
class ADODB_Encrypt_SHA1 {
/**
*/
function write($data, $key) {
$sha1crypt =& new SHA1Crypt();
return $sha1crypt->encrypt($data, $key);
}

/**
*/
function read($data, $key) {
$sha1crypt =& new SHA1Crypt();
return $sha1crypt->decrypt($data, $key);
}

}

return 1;


crypt.inc.php add:

class SHA1Crypt{
function keyED($txt,$encrypt_key)
{
$encrypt_key = sha1($encrypt_key);
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++){
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
return $tmp;
}

function Encrypt($txt,$key)
{
srand((double)microtime()*1000000);
$encrypt_key = sha1(rand(0,32000));
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($encrypt_key,$ctr,1) .
(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
$ctr++;
}
return base64_encode($this->keyED($tmp,$key));
}

function Decrypt($txt,$key)
{
$txt = $this->keyED(base64_decode($txt),$key);
$tmp = "";
for ($i=0;$i<strlen($txt);$i++){
$sha1 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $sha1);
}
return $tmp;
}

function RandPass()
{
$randomPassword = "";
srand((double)microtime()*1000000);
for($i=0;$i<8;$i++)
{
$randnumber = rand(48,120);

while (($randnumber >= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96))
{
$randnumber = rand(48,120);
}

$randomPassword .= chr($randnumber);
}
return $randomPassword;
}

}
Topic: Re:SHA1 Session Encryption
author: iamsure   created: 23-10-2005 05:11:29 PM
Keep in mind that sha1 was only added in 4.3.0, while md5 is available in php3+.

That said, I agree - nice addition, just document the version requirements in the documentation.
Topic: Re:SHA1 Session Encryption
author: Sebastiaan van Stijn   created: 26-10-2005 10:02:20 AM
I agree. Additions like this should be added, they won't harm and might come in handy.
Topic: Re:SHA1 Session Encryption
author: Simon Holywell   created: 11-12-2005 06:45:07 PM
Looks like it got added, thanks.

Simon
Page 1
New ReplySearch

View Source

email: contact#phplens.com (change # to @)     telephone (malaysia): 60-3-7947 2888     fax (malaysia): 60-3-7947 2800