xor运算符在PHP和Visual Basic中的工作方式不同
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了xor运算符在PHP和Visual Basic中的工作方式不同,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1128字,纯文字阅读大概需要2分钟。
内容图文
我在使用xor运算符时遇到了一些麻烦.
我有一个visual basic应用程序,它具有以下功能:
numeroCaracter = Asc(password.Substring(contador, 1)) Xor Asc(CadenaEncriptacion.Substring(contador, 1))
password是函数接收的字符串,CadenaEncriptacion是这个常量:
Private Const CadenaEncriptacion As String = "eNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaY"
我需要将函数转换为PHP,我通过这种方式转换该行:
$numeroCaracter = ord(substr($password, $contador, 1)) xor ord(substr($CadenaEncriptacion, $contador, 1));
PHP中的ord函数和vb中的asc在两种语言中都给出相同的值,但是在XOR运算符中,numeroCaracter在PHP和VB中具有不同的值…
在php中,numeroCaracer始终是每个字符的ord值,在vb中,asc函数给我其他值.
谢谢!
解决方法:
因为php xor的优先级低于=你的代码被解释为:
($numeroCaracter = ord(substr($password, $contador, 1))) xor ord(substr($CadenaEncriptacion, $contador, 1));
因此,$numeroCaracter获取ord的值(substr($password,$contador,1)).添加括号或使用^运算符而不是xor:
$numeroCaracter = ord(substr($password, $contador, 1)) ^ ord(substr($CadenaEncriptacion, $contador, 1));
内容总结
以上是互联网集市为您收集整理的xor运算符在PHP和Visual Basic中的工作方式不同全部内容,希望文章能够帮你解决xor运算符在PHP和Visual Basic中的工作方式不同所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。