source: trunk/phpgwapi/inc/adodb/session/crypt.inc.php @ 2

Revision 2, 1.4 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2//       Session Encryption by Ari Kuorikoski <ari.kuorikoski@finebyte.com>
3class MD5Crypt{
4                function keyED($txt,$encrypt_key)
5                {
6                                $encrypt_key = md5($encrypt_key);
7                                $ctr=0;
8                                $tmp = "";
9                                for ($i=0;$i<strlen($txt);$i++){
10                                                if ($ctr==strlen($encrypt_key)) $ctr=0;
11                                                $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
12                                                $ctr++;
13                                }
14                                return $tmp;
15                }
16
17                function Encrypt($txt,$key)
18                {
19                                srand((double)microtime()*1000000);
20                                $encrypt_key = md5(rand(0,32000));
21                                $ctr=0;
22                                $tmp = "";
23                                for ($i=0;$i<strlen($txt);$i++)
24                                {
25                                if ($ctr==strlen($encrypt_key)) $ctr=0;
26                                $tmp.= substr($encrypt_key,$ctr,1) .
27                                (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
28                                $ctr++;
29                                }
30                                return base64_encode($this->keyED($tmp,$key));
31                }
32
33                function Decrypt($txt,$key)
34                {
35                                $txt = $this->keyED(base64_decode($txt),$key);
36                                $tmp = "";
37                                for ($i=0;$i<strlen($txt);$i++){
38                                                $md5 = substr($txt,$i,1);
39                                                $i++;
40                                                $tmp.= (substr($txt,$i,1) ^ $md5);
41                                }
42                                return $tmp;
43                }
44
45                function RandPass()
46                {
47                                $randomPassword = "";
48                                srand((double)microtime()*1000000);
49                                for($i=0;$i<8;$i++)
50                                {
51                                                $randnumber = rand(48,120);
52
53                                                while (($randnumber >= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96))
54                                                {
55                                                                $randnumber = rand(48,120);
56                                                }
57
58                                                $randomPassword .= chr($randnumber);
59                                }
60                                return $randomPassword;
61                }
62
63}
64?>
Note: See TracBrowser for help on using the repository browser.