Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
36 kaklik 1
<?php
2
//	 Session Encryption by Ari Kuorikoski <ari.kuorikoski@finebyte.com>
3
class 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
?>