最近、急に機密事項をデータベースに保存したいと思い、他人がデータベースに入っても内容を理解できないようにする方法を考えました。そのため、唯一の方法は暗号化することですが、それでも暗号化する必要があります。対称暗号化アルゴリズムをいくつか見つけて、それを確認したいときに復号化できます。以下では、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 化します。
関連する推奨事項: PHP は再帰を使用します
アルゴリズム
PHPでよく使われる
アルゴリズム 🎜データの詳しい説明構造例 🎜🎜🎜🎜🎜🎜🎜🎜🎜以上がPHPでの対称暗号化アルゴリズムの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。