PHP_PHP チュートリアルの crypt() を使用したユーザー認証のコード
了解crypt()
只要有一点使用非Windows平台经验的读者都可能对crypt()相当熟悉,这一函数完成被称作单向加密的功能,它可以加密一些明码,但不能反过来将密码重新转换为原来的明码。crypt()函数定义如下。
string crypt (string input_string [, string salt])
其中,input_string参数是需要加密的明文字符串,第二个可选的salt是一个位字串,能够影响加密的暗码,进一步排除被破解的可能性。缺省情况下,PHP使用一个2个字符的DES干扰串,如果系统使用的是MD5(参考下一节内容),PHP则会使用一个12个字符的干扰串。可以通过执行下面的命令发现系统将要使用的干扰串的长度。
print "My system salt size is: ". CRYPT_SALT_LENGTH;
crypt()支持4种加密算法,表19.1显示了其支持的算法和相应的salt参数的长度。
表crypt()支持四种加密算法
算法 | Salt长度 |
CRYPT_STD_DES | 2-character (Default) |
CRYPT_EXT_DES | 9-character |
CRYPT_MD5 | 12-character beginning with $1$ |
CRYPT_BLOWFISH | 16-character beginning with $2$ |
表面上、crypt() 関数はほとんど役に立たないように見えますが、この関数は実際にシステム パスワードの整合性を保証するために広く使用されています。なぜなら、一方向暗号化パスワードは第三者の手に渡っても平文に戻すことができないため、あまり役に立たないからです。
crypt() を使用してユーザー認証を実装する
前のパートでは、crypt() 関数の機能を簡単に紹介しました。次に、この関数を使用してユーザー認証を実装します。達成したい目標はセクション 19.2 で紹介したものと同じです。 .3。
< ;?php
$user_name=$_POST["user_name"]; //データベース構成情報を含むシステム構成ファイル
//データベースに接続します
$link_id=mysql_connect($DBHOST,$ DBUSER,$DBPWD);
mysql_select_db($DBNAME); //データベース my_chat を選択
//ログイン ユーザー情報があるかどうかをクエリ
$str="select name,password from user where name ='$user_name'";
$result =mysql_query($str,$link_id); //クエリを実行
@$rows=mysql_num_rows($result); //クエリ結果のレコード数を取得
$user_name=$ _SESSION["user_name"];
$password= $_POST["password"];
$salt = substr($password,$salt); //暗号化を使用します。 () ユーザーのパスワードを暗号化します
//古いユーザーの場合
if($rows!=0)
{
list($name,$pwd)=mysql_fetch_row($result);
//パスワードが正しく入力された場合
if($pwd==$password_en)
{
$ str="ユーザー セット is_online =1 を更新します。ここで名前 ='$user_name' およびパスワード ='$password_en'";
$result=mysql_query($str, $link_id) ;//クエリを実行します
require("main.php" ; {
$str="ユーザー (名前,パスワード,is_online) に挿入 value('$user_ name','$password_en',1)";
$result =mysql_query($str, $link_id); //クエリを実行します
require("main.php"); //チャットページに移動します
}
//データベースを閉じます
mysql_close($link_id);
この例は、前のセクションで紹介した XOR 暗号化アルゴリズムと同じです。ユーザー情報を保護するために非常に似ています。重要な部分は、crypt() 関数を使用して 16 行目と 17 行目で暗号化されたパスワードを取得することです。データベース内のパスワードと 25 行目の暗号化されたパスワードを比較して、ユーザーが正当であるかどうかを確認します。
それでは、暗号化されたパスワードがどのようになるかを例を挙げて見てみましょう。
例えば、ユーザー名がrock、パスワードが123456の場合、暗号化されたパスワードは、
12tir.zIbWQ3c
上記は、簡単なユーザー認証システムを実装しています。重要な機密情報を保護するために crypt() を使用する場合、デフォルト状態での crypt() の使用は最も安全ではなく、セキュリティ要件が低いシステムでのみ使用できることに注意してください。
http://www.bkjia.com/PHPjc/325865.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/325865.html
技術記事
crypt() について Windows 以外のプラットフォームを使用した経験のある読者は、crypt() についてよく知っているかもしれませんが、これは一部のプレーン コードを暗号化することができます。

ホット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)

ホットトピック

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
