PHP マスターの皆さんには、この暗号化アルゴリズムの原理をよく理解していただきたいと思います。
Jun 13, 2016 pm 01:09 PM
code
key
quot
str
strlen
求php高手,看下这一段加密算法的原理
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 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
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> function sys_auth($str, $action = 'encode', $key = ''){ $key = md5($key); echo '<br>$key:'.$key; $str = $action == 'encode' ? $str : base64_decode($str); echo '<br>加密方式的$str:'.$str; $strlen = strlen($str); echo '<br>$str长度'.$strlen; $keylen = strlen($key); echo '<br>$keylen长度'.$keylen; $code = ''; for($i = 0; $i < $strlen; $i++){ $k = $i % $keylen; echo "<br>第".$i."次循环的\$k的值是".$k; $code .= $str[$i] ^ $key[$k]; echo "<br>第".$i.'次循环$k值是'.$k; echo "<br>第".$i.'次循环$str[$i]值是'.$str[$i]; echo "<br>第".$i.'次循环$key[$k]值是'.$key[$k]; echo "<br>第".$i."次循环的\$code的值是".$code."<br><br><br><br><br>"; } $code = $action == "decode" ? $code : base64_encode($code); echo "<br>".$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]不懂
------解决方案--------------------
手册,运算符
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7297
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1206
29



パッチ不可能な Yubico 2 要素認証キーの脆弱性により、ほとんどの Yubikey 5、セキュリティ キー、YubiHSM 2FA デバイスのセキュリティが侵害される

Visual Studio Code で Unity プロジェクトを編集すれば、準備完了です。

Java で JSONObject に特定のキーが含まれているかどうかを確認するにはどうすればよいですか?
