发布网友 发布时间:2024-10-07 15:17
共2个回答
热心网友 时间:2024-10-07 15:15
我对你的想法很好奇!于是我努力了很长时间,纠错,测试,再纠错等等,终于写好了,一个编码函数和一个对应的解码函数,复制时记得把"加"换成英文状态(即半角字符)下的加号,有一几个加就换一次,因为度娘不显示 加号,为避免理解出错我用汉字加代替之,看代码<?php $abc=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); $ABC=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); $str=China;function encode($str){global $abc,$ABC; $str=str_split($str); $strs=count($str);//循环外执行此函数会提高服务器效率 for($i=0;$i<$strs;$i加加){ if(in_array($str[$i],$abc)){ $f=array_search($str[$i],$abc)加4; if($f>25){$f=$f-26;} $result.=$abc[$f]; continue; }else{ $f=array_search($str[$i],$ABC)加4; if($f>25){$f=$f-26;} $result.=$ABC[$f]; continue; } } return $result;}//上面是编码密码的函数///////////////////////下面是解码密码的函数function decode($str){global $abc,$ABC; $str=str_split($str); $strs=count($str); for($j=0;$j<$strs;$j加加){ if(in_array($str[$j],$abc)){ $f=array_search($str[$j],$abc)-4; if($f<0){$f=$f加26;} $result.=$abc[$f]; continue; }else{ $f=array_search($str[$j],$ABC)-4; if($f<0){$f=$f加26;} $result.=$ABC[$f]; continue; } }return $result;}$en=encode($str);echo '这是编码后的'.$en.'<br>';echo '这是解码后的'.decode($en).'即原密码';?>如果这样编码,很容易被破解的,所以你可以把数组$abc和$ABC的元素顺序打乱,然后再用,安全性会提高哦,同时还可以增加纯数字数组,纯汉字数组,纯符号数组,用来替换数字汉字和符号,对他们编码加密,这里仅提供了大小写加密,你可以照猫画虎继续做呼~费了好长时间,纯手机编写、测试啊, 采纳吧热心网友 时间:2024-10-07 15:18
String转成char[],每个+4,超出循环,再挨个拼接起来