大家好吖,我是新手,请问下面的函数中两个循环是什么意思呢?是不是把$key的每个字符都和$string的所有字符都按位与呢?为什么不是$key和$string的每个字符一一对应进行与呢?谢谢
<?php $key="1234567890"; //设置密锁 function jiam($string,$key) //对$string加密过程 { for($i=0;$i<=strlen($string);$i++) { for($j=0;$j<=strlen($key);$j++) { $string[$i]=$string[$i]^$key[$j]; //按位进行与运算,从而实现加密 } } return $string; //返回加密后的值 }function jiem($string,$key) //对$string解密过程 { for($i=0;$i<=strlen($string);$i++) { for($j=0;$j<=strlen($key);$j++) { $string[$i]=$key[$j]^$string[$i]; //按位进行与运算,从而实现解密 }
} return $string; //返回解密后的数值 }?>
<?php $key="1234567890"; //设置密锁 function jiam($string,$key) //对$string加密过程 { for($i=0;$i<=strlen($string);$i++) { for($j=0;$j<=strlen($key);$j++) { $string[$i]=$string[$i]^$key[$j]; //按位进行与运算,从而实现加密 } } return $string; //返回加密后的值 }function jiem($string,$key) //对$string解密过程 { for($i=0;$i<=strlen($string);$i++) { for($j=0;$j<=strlen($key);$j++) { $string[$i]=$key[$j]^$string[$i]; //按位进行与运算,从而实现解密 }
} return $string; //返回解密后的数值 }?>
如:带价密字符串为:123456789
key为123
则加密过程为:
1234567890的每一位与下面的每一位异或
1231231231
解密同理