ホームページ  >  記事  >  バックエンド開発  >  PHP 暗号化関数 - crypt() 関数の暗号化使用例

PHP 暗号化関数 - crypt() 関数の暗号化使用例

黄舟
黄舟オリジナル
2017-05-25 16:08:264646ブラウズ

PHP暗号化関数—crypt()関数による暗号化

暗号化関数を紹介する前に、まずデータ暗号化の原理を紹介しましょう。それは、元のプレーンファイルまたはデータを特定のアルゴリズムに従って処理して、暗号化を不可能にすることです。読み取られるコードは通常「暗号文」と呼ばれ、データが不正に盗まれたり読み取られたりするのを防ぐために使用されます。

PHP でデータを暗号化できる主な関数は、crypt()、md5()、sha1()、および暗号化拡張ライブラリ Mcrpyt と Mash です。この記事では、まず暗号化に crpyt() 関数を使用する方法を紹介します。

crypt() 関数 は、一方向文字列ハッシュである一方向暗号化関数を完成させることができます。

crypt() 関数の構文形式は次のとおりです:

string crypt ( string $str [, string $salt ] )

アルゴリズム ソルトの長さ CRYPT_STD_DES 2 文字 (デフォルト) CRYPT_EX T_DES9文字 CRYPT_MD5 12 文字 ($1$ から始まります) CRYPT_BLOWFISH 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 暗号化関数 - crypt() 関数の暗号化使用例次の例は、入力されたユーザー名をチェックします。具体的なコードは次のとおりです。

<?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 = &#39;".$usr."&#39;";//生成查询语句
    $rst = mysqli_query($link,$sql);                          //执行语句,返回结果集
    if($rst){
        echo "用户名存在";
    }else{
        echo "用户名可以使用";
    }
}
?>

出力結果は次のとおりです。

次の記事では、MD5() 関数の使用方法を紹介します。詳細については、「

PHP 暗号化関数 - md5() 関数の暗号化

」を参照してください。

PHP 暗号化関数 - crypt() 関数の暗号化使用例【関連推奨事項】

1. 関連トピックの推奨事項:「PHP 暗号化関数

2.

PHP 暗号化関数—md5()関数暗号化の使用例

3.

PHP暗号化関数—sha1()関数暗号化のインスタンス使用法

4.

PHP暗号化技術ビデオチュートリアル

以上がPHP 暗号化関数 - crypt() 関数の暗号化使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。