function sys_auth($str, $action = 'encode', $key = ''){
$key = md5($key);
$str = $action == 'encode' ? $str : base64_decode($str);
$strlen = strlen($str);
$keylen = strlen($key);
$code = '';
for($i = 0; $i < $strlen; $i++){
$k = $i % $keylen;
$code .= $str[$i] ^ $key[$k];
}
$code = $action == "decode" ? $code : base64_encode($code);
return $code;
}
我将每句都echo 下的代码:
function sys_auth($str, $action = 'encode', $key = ''){
$key = md5($key);
echo '
$key:'.$key;
$str = $action == 'encode' ? $str : base64_decode($str);
echo '
加密方式的$str:'.$str;
$strlen = strlen($str);
echo '
$str长度'.$strlen;
$keylen = strlen($key);
echo '
$keylen长度'.$keylen;
$code = '';
for($i = 0; $i < $strlen; $i++){
$k = $i % $keylen;
echo "
第".$i."次循环的\$k的值是".$k;
$code .= $str[$i] ^ $key[$k];
echo "
第".$i.'次循环$k值是'.$k;
echo "
第".$i.'次循环$str[$i]值是'.$str[$i];
echo "
第".$i.'次循环$key[$k]值是'.$key[$k];
echo "
第".$i."次循环的\$code的值是".$code."
";
}
$code = $action == "decode" ? $code : base64_encode($code);
echo "
".$code;
return $code;
}
得到的结果是:
[code=PHP]
$key:c81e728d9d4c2f636f067f89cc14862c
加密方式的$str:123456
$str长度6
$keylen长度32
第0次循环的$k的值是0
第0次循环$k值是0
第0次循环$str[$i]值是1
第0次循环$key[$k]值是c
第0次循环的$code的值是R
第1次循环的$k的值是1
第1次循环$k值是1
第1次循环$str[$i]值是2
第1次循环$key[$k]值是8
第1次循环的$code的值是R
第2次循环的$k的值是2
第2次循环$k值是2
第2次循环$str[$i]值是3
第2次循环$key[$k]值是1
第2次循环的$code的值是R
第3次循环的$k的值是3
第3次循环$k值是3
第3次循环$str[$i]值是4
第3次循环$key[$k]值是e
第3次循环的$code的值是R Q
第4次循环的$k的值是4
第4次循环$k值是4
第4次循环$str[$i]值是5
第4次循环$key[$k]值是7
第4次循环的$code的值是R Q
第5次循环的$k的值是5
第5次循环$k值是5
第5次循环$str[$i]值是6
第5次循环$key[$k]值是2
第5次循环的$code的值是R Q
UgoCUQIE
加密后:UgoCUQIE
[/code]
现在的问题是:第0次循环$str[0]值是1,$key[0]值是c
我直接按照上面的 $str[0]^$key[0],(即1^0)却报错,怎么回事,另外 $str[0]^$key[0]不懂
------解决方案--------------------
手册,运算符
相关文章推荐
• Synfony开发第二篇解决方案 • 小弟我是刚转做PHP的 • 这个正则啥意思?该如何解决 • 晕了 ,求个正则表达式 php的, . • 【实时项目进度贴】原创PHP社区论坛项目正在进行中!关注。o(∩_∩)o.哈哈。该如何解决jquery 基础视频教程
jQuery 很容易学习,希望通过我们的《jquery 基础视频教程》可以帮助大家来更好的学习jQuery。 jQuery 是一个 JavaScript 库,简化了 JavaScript 编程。
jQuery教程49027次播放
javascript三级联动视频教程
《javascript三级联动视频教程》介绍了javascript开发的三级联动功能,该功能在日常使用中还是经常能用的到的一个。
JavaScript教程28986次播放
独孤九贱(3)_JavaScript视频教程
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。没有它,你的前端生涯是不完整的。《php.cn独孤九贱(3)-JavaScript视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了javascript知识。
JavaScript教程117131次播放
独孤九贱(6)_jQuery视频教程
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。 核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等,是全球最流行的前端开发框架之一。PHP中文网根据最新版本,独家录制jQuery最新视频教程,回馈PHP中文网的新老用户。
jQuery教程96650次播放