background image

第 4 行定义了加密函数 myEncrypt(),输入参数$string 为明文,而$key 为密钥;输出为使用
$key 作为密钥并使用 XOR 加密算法产生的密文。

第 6~12 行的外层 for 循环对明文字符串的每一个字符进行循环,而内层的 for 循环(第 8
~11 行)对明文的每一字符循环与密钥的每一位做异或运算。其原理已经在上一小节中介
绍,不再重述。

同样,与加密函数类似,可以写出下面的解密函数。

15 //

  

解密函数

16 functionmyDecrypt($string,$key)  
17 {  
18 for($i=0;$i<STRLEN($STRING);p$i++)<>  
19 {  
20 for($j=0;$j<STRLEN($KEY);p$j++)<>  
21 {  
22 $string[$i]=$key[$j]^$string[$i];  
23 }  
24 }  
25 return$string;  
26 }  
27 ?

 

第 4 行定义了解密函数 myDecrypt(),输入参数$string 为密文,而$key 为密钥;输出为使用
$key 作为密钥并使用 XOR 解密算法产生的明文。

下面,通过一个应用示例来进一步说明加密函数的功能。

28 //

  

示例

29 $my_password=”chair”;  
30 echo”my_password=$my_password”;  
31 $my_key=”1234567890″;  
32 $my_password_en=myEncrypt($my_password,$my_key);  
33 echo”my_password_en=$my_password_en”;  
34 $my_password_de=myDecrypt($my_password_en,$my_key);  
35 echo”my_password_de=$my_password_de”; 

第 3 行首先定义了一个明文$my_password,然后在第 4 行定义密钥$my_key。

第 5、6 行分别调用加密函数生成密文并输出;反过来,又在第 7、8 行将密文解密。

上面示例的运行结果如下。

my_password=chair

my_password_en=RYPXC