mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-25 08:09:02 +01:00
64 lines
1.4 KiB
PHP
64 lines
1.4 KiB
PHP
<?php
|
|
// Session Encryption by Ari Kuorikoski <ari.kuorikoski@finebyte.com>
|
|
class MD5Crypt{
|
|
function keyED($txt,$encrypt_key)
|
|
{
|
|
$encrypt_key = md5($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 = md5(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++){
|
|
$md5 = substr($txt,$i,1);
|
|
$i++;
|
|
$tmp.= (substr($txt,$i,1) ^ $md5);
|
|
}
|
|
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;
|
|
}
|
|
|
|
}
|
|
?>
|