求php高手,看上這一段密碼編譯演算法的原理

來源:互聯網
上載者:User
求php高手,看下這一段密碼編譯演算法的原理
PHP code
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 下的代碼:

PHP code
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 QUgoCUQIE加密後:UgoCUQIE

[/code]

現在的問題是:第0次迴圈$str[0]值是1,$key[0]值是c
我直接按照上面的 $str[0]^$key[0],(即1^0)卻報錯,怎麼回事,另外 $str[0]^$key[0]不懂

------解決方案--------------------
手冊,運算子
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.