第 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