プロジェクト内で暗号化する必要があるデータに遭遇することがありますが、それを自分で復号化する必要があるため、いくつかの対称暗号化アルゴリズムを見つけて、表示したいときに復号化することしかできません。この記事では、PHP での単純な対称暗号化アルゴリズムの実装について紹介します。
前書き
私はインターネット上で PHP 用の優れた対称暗号化アルゴリズムを見つけました。PHP 構文環境には、urlencode と urldecode、base64_encode および Base64_decode を備えた対称アルゴリズムがありますが、これらの組み込みアルゴリズムは暗号化アルゴリズムと呼ぶことはできず、符号化方式とのみ呼ぶことができます。ただし、これらを使用して何らかの処理を実行し、単純な暗号化および復号化アルゴリズムを実装することができます。
今回の暗号化および復号化アルゴリズムはbase64を使用して適応されています。通常、base64_encode($str)
によって生成された文字列を使用します。何も処理せずに、base64_decode()
は前の文字列に変換して戻すことができます。 base64_encode()
以降の文字列に変換すると、変換されても独自の文字列ではなくなります。 base64_encode($str)
产生的字符串,不经过任何的加工的话,base64_decode()
就能转回我们之前的字符串;可是如果我们在base64_encode()
之后的字符串里插入几个字符呢,那他就转不回来了,即使转过来也不是我们自己的字符串。
示例代码如下:
<?php $content = "大家好,我是中国人,你是谁"; /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param String $skey 加密EKY * @return String */ function encode($string = '', $skey = 'wenzi') { $strArr = str_split(base64_encode($string)); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key < $strCount && $strArr[$key].=$value; return str_replace(array('=', '+', '/'), array('O0O0O', 'o000o', 'oo00o'), join('', $strArr)); } /** * 简单对称加密算法之解密 * @param String $string 需要解密的字串 * @param String $skey 解密KEY * @return String */ function decode($string = '', $skey = 'wenzi') { $strArr = str_split(str_replace(array('O0O0O', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2); $strCount = count($strArr); foreach (str_split($skey) as $key => $value) $key <= $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0]; return base64_decode(join('', $strArr)); } echo '<pre class="brush:php;toolbar:false">'; echo "string : " . $content . " <br />"; echo "encode : " . ($enstring = encode($content)) . '<br />'; echo "decode : " . decode($enstring); exit();
上面的算法里我们可以看到:我们把base64_encode()
サンプルコードは次のとおりです:
rrreee
上記のアルゴリズムでは、事前に設定したキーに base64_encode()
によって生成された文字を挿入します。内部の特殊文字は置き換えられるため、他の人がそのような文字列を見ても、それが何であるかわかりません。もちろん、キーを文字列に逆方向に挿入する、キーを Base64 化してから挿入するなど、ここで若干の改善を行うことができます。キーを挿入した後、再度 Base64 化します。
もちろん、復号化は暗号化の逆方向です。しばらく考えた後、復号化の原理に気づきました。文字列に文字を挿入する前に、復号化するときにそれらを抽出する必要があります。暗号化された文字列 各配列内の 2 つの要素ごとにグループ化し、2 番目の文字がキー内にあるかどうかを判断します。そうである場合、最初の文字は元の Base64 の文字です。 H 関連する推奨事項: pPhp 暗号化復号化
以上がPHP は単純な対称暗号化を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。

この記事では、PHPのページリダイレクトのさまざまな方法について説明し、ヘッダー()関数に焦点を当て、「すでに送信されているヘッダー」エラーなどの一般的な問題に対処します。

記事では、PHPでヒントを示すタイプについて説明します。これは、機能内の予想データ型を指定する機能です。主な問題は、タイプの施行を通じてコードの品質と読みやすさを改善することです。

この記事では、PHPのデータベースアクセスの拡張機能であるPHPデータオブジェクト(PDO)について説明します。これは、データベースの抽象化やより良いエラー処理など、準備されたステートメントとMySQLIに対する利点を通じてセキュリティを強化する上でのPDOの役割を強調しています。

記事では、PHP APIの作成とセキュリティについて説明し、LaravelなどのフレームワークやBest Security Practicesなどのフレームワークを使用して、エンドポイントの定義からパフォーマンスの最適化までの手順を詳細に説明します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ホットトピック









