PHP暗号化関数—crypt()関数による暗号化
暗号化関数を紹介する前に、まずデータ暗号化の原理を紹介しましょう。それは、元のプレーンファイルまたはデータを特定のアルゴリズムに従って処理して、暗号化を不可能にすることです。読み取られるコードは通常「暗号文」と呼ばれ、データが不正に盗まれたり読み取られたりするのを防ぐために使用されます。
PHP でデータを暗号化できる主な関数は、crypt()、md5()、sha1()、および暗号化拡張ライブラリ Mcrpyt と Mash です。この記事では、まず暗号化に crpyt() 関数を使用する方法を紹介します。
crypt() 関数 は、一方向文字列ハッシュである一方向暗号化関数を完成させることができます。
crypt() 関数の構文形式は次のとおりです:string crypt ( string $str [, string $salt ] )
ソルトの長さ | |
2 文字 (デフォルト) | |
9文字 | |
12 文字 ($1$ から始まります) | |
16 文字 ($2$ から始まります) |
ここで説明します:
デフォルトでは、PHP は1 文字または 2 文字の DES 干渉文字列。システムが MD5 を使用する場合、現在使用されている干渉文字列の長さは CRYPT_SALT_LENGTH 変数で確認できます。
crypt() 関数インスタンスの使用法:
誰にでもわかるように、以下の例を使用しましょう。具体的なコードは次のとおりです。<?php header("Content-Type:text/html; charset=utf-8"); $atr = "php中文网 www.php.cn"; //声明字符串变量$atr echo "加密之前atr的值为:".$atr; $atr1 = crypt($atr); //对变量$str 加密 echo "<br>加密之后str的值为:".$atr1; //输出加密后的变量 ?>出力結果は次のとおりです。上記例を実行すると、ブラウザを更新し続けると生成される暗号化結果が毎回異なることがわかり、暗号化されたデータをどう判断するかが問題となります。 crypt() 関数は一方向の暗号化であり、暗号文を平文に戻すことはできず、暗号化後のデータは毎回異なります。これが、salt パラメーターが解決する問題です。 crypt() 関数は、salt パラメータを使用して平文を暗号化し、判定する際に同じ Salt パラメータを使用して出力情報を再度暗号化し、2 回の暗号化後の結果を比較して判定します。
次の例は、入力されたユーザー名をチェックします。具体的なコードは次のとおりです。
<?php header("Content-Type:text/html; charset=utf-8"); $link=mysqli_connect("localhost","root",""); $db_selected = mysqli_select_db($link,"my_db"); ?> <form name="form1" action="" method="post"> <input type="text" name="username" id="username" size="15"> <input type="submit" name="Submit" value="检测"> </form> <?php if(isset($_POST["username"])!=""){ $usr=crypt(isset($_POST["username"]),"tm"); //对用户名进行加密 $sql = "select * from tb_user where user = '".$usr."'";//生成查询语句 $rst = mysqli_query($link,$sql); //执行语句,返回结果集 if($rst){ echo "用户名存在"; }else{ echo "用户名可以使用"; } } ?>
出力結果は次のとおりです。
次の記事では、MD5() 関数の使用方法を紹介します。詳細については、「PHP 暗号化関数 - md5() 関数の暗号化
」を参照してください。【関連推奨事項】
1. 関連トピックの推奨事項:「PHP 暗号化関数」
2.
PHP 暗号化関数—md5()関数暗号化の使用例PHP暗号化関数—sha1()関数暗号化のインスタンス使用法PHP暗号化技術ビデオチュートリアル以上がPHP 暗号化関数 - crypt() 関数の暗号化使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。