输入5个字符,然后将它译成密码,最后输出该密码。密码规则是:用原来的字母后面第4个字母代替原来的字母
例如,字母“A”后面的第4个字母是“E”,用“E”代替“A”。因此若你输入5个字符“China”,最后输出应为“Glmre”。...
例如,字母“A”后面的第4个字母是“E”,用“E”代替“A”。因此若你输入5个字符“China”,最后输出应为“Glmre”。
展开
2个回答
展开全部
我对你的想法很好奇!于是我努力了很长时间,纠错,测试,再纠错等等,终于写好了,一个编码函数和一个对应的解码函数,复制时记得把"加"换成英文状态(即半角字符)下的加号,有一几个加就换一次,因为度娘不显示 加号,为避免理解出错我用汉字加代替之,看代码<?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的元素顺序打乱,然后再用,安全性会提高哦,同时还可以增加纯数字数组,纯汉字数组,纯符号数组,用来替换数字汉字和符号,对他们编码加密,这里仅提供了大小写加密,你可以照猫画虎继续做呼~费了好长时间,纯手机编写、测试啊, 采纳吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询