discuzの暗号化・復号化関数と中国語コメントの使い方_PHPチュートリアル
/**
* $string 平文または暗号文
* $operation 暗号化 ENCODE または復号 DECODE
* $key キー
* $expiry キーの有効期間
*/
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
// 動的キーの長さ、同じ平文は動的キーに依存して異なる暗号文を生成します
// ランダムなキーを追加すると、元のテキストとキーがまったく同じであっても暗号化結果が毎回異なり、解読の難易度が高まります。 。
// 値が大きいほど、暗号文の変更パターンが大きくなります。 暗号文の変更 = 16 の $ckey_length 乗
// この値が 0 の場合、ランダムなキーは生成されません
$ckey_length = 4;
/ /キー
// $GLOBALS['discuz_auth_key'] 必要に応じて変更できます
$key = md5($key ? $key : $GLOBALS['discuz_auth_key'])
// キー a は暗号化と復号化
$keya = md5(substr($key, 0, 16));
// キー b はデータの整合性検証に使用されます
$keyb = md5(substr($key, 16, 16));キー c は、生成された暗号文を変更するために使用されます
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), - $ckey_length)) : '';
// 操作に関係するキー
$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);
// プレーンテキスト、最初の 10 桁 保存に使用ビット 10 から 26 は、復号化時にデータの整合性を検証するために使用されます。 $ckey_length ビットから始まります。これは、暗号文の前の $ckey_length ビットが、正しい復号化を保証するための動的キーを保存するためです
$string = $operation == 'DECODE' ?base64_decode(substr($string, $ckey_length)) : sprintf( '%010d ', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);
$result = '' ;
$box = range(0, 255);
$rndkey = array();
// キーブックを生成
for($i = 0; $i <= 255; $i++) {
$ rndkey[ $i] = ord($cryptkey[$i % $key_length]);
}
// 固定アルゴリズムを使用してキーブックを破壊し、ランダム性を高めます。非常に複雑に見えますが、実際には、暗号文の強度
for($j = $i = 0; $i <256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
// コア暗号化および復号化部分
for($ a = $j = $i = 0; $string_length; {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp; $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); }
if ($ Operation == 'decode') {
// substr ($ result, 0, 10) == 0 検証データの有効性
// substr ($ result, 0, 10) -time () & gt; 0 検証 データの有効性
// substr($result, 10 、16)== substr(md5(substr($ result、26)。$ keyb)、0、16)データの整合性の検証26)。$ keyb)、0、16){
} else {
dyny {
}ダイナミックキーを暗号テキストに保存します。そのため、同じプレーンテキストを別の暗号テキストを作成した後に復号化できますkeyc.str_replace('=', '',base64_encode($result));
$a = www.jb51.net;
$b = authcode($a, "ENCODE", "abc123");
echo $b."
";
echo authcode($b, "デコード"、"abc123");
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Discuz のバックグラウンド ログイン問題の解決策が明らかになりました。特定のコード サンプルが必要です。インターネットの急速な発展に伴い、Web サイトの構築がますます一般的になってきました。Discuz は、一般的に使用されるフォーラム Web サイト構築システムとして、次のユーザーに好まれています。多くのウェブマスター。しかし、その強力な機能ゆえに、Discuz を使用する際にバックグラウンドでのログインの問題などの問題が発生することがあります。本日は、Discuz のバックグラウンド ログインの問題の解決策を明らかにし、具体的なコード例を提供します。

「Discuz の探索: 定義、機能、およびコード例」 インターネットの急速な発展に伴い、コミュニティ フォーラムは人々が情報を取得し、意見を交換するための重要なプラットフォームになりました。多くのコミュニティ フォーラム システムの中でも、Discuz は中国でよく知られたオープン ソース フォーラム ソフトウェアとして、大多数の Web サイト開発者や管理者に好まれています。それで、ディスカスとは何ですか?どのような機能があり、Web サイトにどのように役立つのでしょうか?この記事では、Discuz について詳しく紹介し、読者がDiscuz についてさらに学ぶのに役立つ具体的なコード例を添付します。

Discuz ユーザーの必需品です。プロップの名前変更を徹底分析! Discuz フォーラムでは、名前変更機能が常にユーザーから大きな注目と要望を集めてきました。名前を変更する必要がある一部のユーザーにとって、名前変更プロップを使用するとユーザー名を簡単に変更でき、これも興味深い対話方法です。 Discuz の名前変更プロパティについて、入手方法、使用方法、一般的な問題の解決策などを詳しく見てみましょう。 1. Discuz で名前変更用小道具を入手します。名前変更用小道具は通常、ポイントまたは管理者を通じて購入します。

Discuz パスワードが間違っている場合はどうすればよいですか?迅速な解決策の共有!ディスカッ!これは、ユーザーに便利なコミュニケーションのためのプラットフォームを提供する非常に人気のあるフォーラム プログラムです。ディスカスを使ってみよう!フォーラムにアクセスするときに、パスワードが間違っている場合があります。その場合、ユーザーはログインできず、フォーラムを正常に使用できなくなる可能性があります。さあ、ディスカスに会いましょう!パスワードが間違っている場合、問題を迅速に解決するにはどうすればよいでしょうか?参考として提供される具体的なコード例とともに、いくつかの解決策を以下で共有します。 1.パスワードが正しいかどうかを確認します

「Discuz 登録プロセスの詳細説明: 個人情報を簡単に変更できるようにするため、具体的なコード例が必要です」 Discuz は、さまざまな Web サイトで広く使用されている強力なコミュニティ フォーラム プログラムであり、豊富なユーザー登録と個人情報変更機能を提供します。そしてインターフェース。この記事では、Discuz の登録プロセスを詳しく紹介し、個人情報を簡単にカスタマイズおよび変更するのに役立つ具体的なコード例を示します。 1. ユーザー登録プロセス Discuz では、ユーザー登録はサイトの重要な機能の 1 つであり、登録プロセスのスムーズさと、

Discuz ドメイン名を変更する手順の詳細な説明。特定のコード例が必要です。Web サイトの開発と運用に伴い、Discuz フォーラムのドメイン名を変更する必要がある場合があります。これは、ブランドの変更、Web サイトの SEO が原因である可能性があります。最適化、またはその他の理由。理由が何であれ、Discuz ドメイン名の変更は慎重な操作が必要なプロセスです。今日は、Discuz ドメイン名の変更手順を詳しく紹介し、具体的なコード例を示します。ステップ 1: データをバックアップする. ドメイン名を変更する前に、まず Web サイトが

タイトル: Discuz WeChat の共有が表示されない問題を解決するには、具体的なコード例が必要です モバイル インターネットの発展に伴い、WeChat は人々の日常生活に欠かせないものになりました。 Web サイト開発では、ユーザー エクスペリエンスを向上させ、Web サイトの露出を拡大するために、多くの Web サイトに WeChat 共有機能が統合され、ユーザーが Web サイトのコンテンツを Moments または WeChat グループに簡単に共有できるようになります。ただし、Discuz などのオープンソース フォーラム システムを使用すると、WeChat 共有が表示されないという問題が発生し、ユーザー エクスペリエンスに一定の困難が生じることがあります。

Discuz Editor: 効率的な投稿レイアウト ツール インターネットの発展に伴い、オンライン フォーラムは人々がコミュニケーションし、情報を共有するための重要なプラットフォームになりました。フォーラムでは、ユーザーは自分の意見やアイデアを表現するだけでなく、他のユーザーと議論したり、交流したりすることもできます。投稿を公開する場合、明確で美しいフォーマットは多くの場合、より多くの読者を惹きつけ、より正確な情報を伝えることができます。ユーザーが投稿をすばやく入力して編集できるようにするために、Discuz エディタが登場し、効率的な投稿植字ツールになりました。ディスクー
