ホームページ バックエンド開発 PHPチュートリアル PHP_PHP チュートリアルの crypt() を使用したユーザー認証のコード

PHP_PHP チュートリアルの crypt() を使用したユーザー認証のコード

Jul 21, 2016 pm 03:16 PM
crypt php window 学ぶ コード 使用 成し遂げる ユーザー 身元 いいえ 確認する

了解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

tru​​e

http://www.bkjia.com/PHPjc/325865.html

技術記事
crypt() について Windows 以外のプラットフォームを使用した経験のある読者は、crypt() についてよく知っているかもしれませんが、これは一部のプレーン コードを暗号化することができます。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

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

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

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

See all articles