コアポイント
- PHP 5.5パスワードハッシュAPIは、パスワードをハッシュする場合は、パスワードをハッシュ値で検証するためのパスワードを単純化します。パスワードをハッシュ値で確認する場合は、パスワードを再度再施行する必要があるかどうかを確認するために、
password_hash()
>ハッシュアルゴリズムの名前とハッシュプロセスで使用されるさまざまなオプションを返すために使用されます。password_verify()
password_needs_rehash()
このAPIは、デフォルトでBCRyptアルゴリズムを使用し、開発者がそれを提供する必要なく塩値の生成を自動的に処理します。ただし、開発者は、3番目のパラメーターをpassword_get_info()
関数に渡すことで、独自の塩またはコスト値を提供できます。 - このAPIは非常に安全であると考えられていますが、包括的なセキュリティポリシーの一部として使用することをお勧めします。 PHP 5.3.7以降を使用する開発者は、PHPバージョンが5.5にアップグレードされた後、APIをエミュレートし、自動的に無効にする
password_hash()
と呼ばれるライブラリを使用できます。 -
BCRYPTの使用は現在、最高のパスワードハッシュプラクティスとして認識されていますが、多くの開発者はまだMD5やSHA1などの古いアルゴリズムと弱いアルゴリズムを使用しています。一部の開発者は、ハッシュするときに塩を使用しません。 PHP 5.5の新しいハッシュAPIは、複雑さを隠しながらBCRyptに注意を向けるように設計されています。この記事では、PHP New Hash APIを使用することの基本について説明します。新しいパスワードハッシュAPIは、4つの単純な関数を公開します:
password_compat
- パスワードをハッシュするために使用されます。
- - ハッシュ値に基づいてパスワードを確認するために使用されます。
password_hash()
- - パスワードを再ハッシュするときに使用します。
password_verify()
- - ハッシュアルゴリズムの名前とハッシュプロセスで使用されるさまざまなオプションを返します。
password_needs_rehash()
-
password_get_info()
関数は安全ですが、多くの人はそれが複雑すぎてエラーが発生しやすいと考えています。その後、一部の開発者は、弱い塩と弱いアルゴリズムを使用して、次のようなハッシュを生成します。
password_hash()
ただし、関数は私たちの作業を簡素化し、コードを安全に保つことができます。ハッシュパスワードが必要な場合は、関数に渡すだけで、データベースに保存できるハッシュ値が返されます。 crypt()
<?php $hash = md5($password . $salt); // 可行,但危险
それだけです!最初のパラメーターは、パスワード文字列を持つもので、2番目のパラメーターは、ハッシュを生成するために適用されるアルゴリズムを指定します。現在のデフォルトアルゴリズムはBCRYPTですが、将来的にはデフォルトアルゴリズムとしてより強力なアルゴリズムを追加し、大きな文字列を生成する可能性があります。プロジェクトでPASSWORD_DEFAULT
を使用している場合は、60文字以上の容量のある列にハッシュを保存してください。列サイズを255に設定するのが良いかもしれません。 2番目のパラメーターとしてPASSWORD_BCRYPT
を使用することもできます。この場合、結果は常に60文字の長さです。ここでは、塩の価値やコストパラメーターを提供する必要がないことが重要です。新しいAPIは、これらすべてを処理します。塩はハッシュの一部なので、個別に保存する必要はありません。独自の塩(またはコスト)を提供したい場合は、3番目のパラメーター(オプション配列)を関数に渡すことで実行できます。
<?php $hash = password_hash($password, PASSWORD_DEFAULT);この方法では、最新のセキュリティ対策をいつでも使用できます。 PHPが後でより強力なハッシュアルゴリズムを実装することを決定した場合、コードはそれを活用できます。
password_verify()
新しいAPIを使用してハッシュを生成する方法を学んだので、パスワードを確認する方法を見てみましょう。ハッシュをデータベースに保存することを忘れないでください。ただし、ユーザーがログインするときに入手できるのは単純なテキストパスワードです。 関数は、単純なテキストパスワードとハッシュ文字列をその2つのパラメーターとして取得します。ハッシュが指定されたパスワードと一致する場合、trueを返します。 password_verify()
<?php $options = [ 'salt' => custom_function_for_salt(), //编写您自己的代码以生成合适的盐 'cost' => 12 // 默认成本为 10 ]; $hash = password_hash($password, PASSWORD_DEFAULT, $options);塩はハッシュパスワードの一部であることを忘れないでください。そのため、ここで個別に指定しないのです。
password_needs_rehash()
ハッシュストリングの塩とコストのパラメーターを変更する必要がある場合はどうすればよいですか?これは、より強い塩またはより大きなコストパラメーターを追加することで安全性を改善することを決定する可能性があるため、これは懸念事項です。さらに、PHPはハッシュアルゴリズムのデフォルトの実装を変更する場合があります。これらすべての場合、既存のパスワードを再ハッシュする必要があります。
password_needs_rehash()
指定されたハッシュが特定のアルゴリズムを実装し、作成時に特定のオプション(コストや塩など)を使用するかどうかを確認するのに役立ちます。
<?php if (password_verify($password, $hash)) { // 成功! } else { // 无效的凭据 }ユーザーがWebサイトにログインしようとするとき、これを行う必要があることを忘れないでください。
password_get_info()
ハッシュを受け入れ、3つの要素を含む連想配列を返します。
password_get_info()
- - 特定のアルゴリズムを識別する定数
-
algo
- 使用されたアルゴリズムの名前 -
algoName
- ハッシュを生成するときに使用されるさまざまなオプション -
options
新しいパスワードハッシュAPIは、 PHP 5.5パスワードハッシュAPI FAQ(FAQ)PHP 5.5パスワードハッシュAPIとは何ですか?なぜそれが重要なのですか?
PHP 5.5パスワードハッシュAPIは、PHP 5.5以降でのみ使用できます。ただし、PHP 5.3.7以降と同じ機能を提供する互換性ライブラリがあります。 はい、非ASCIIパスワードを使用してPHP 5.5パスワードハッシュAPIを使用できます。 crypt()
関数を使用するよりも使いやすいです。あなたのウェブサイトが現在PHP 5.5で実行されている場合は、新しいハッシュAPIを使用することを強くお勧めします。 PHP 5.3.7(またはそれ以降)を使用している人は、PHPバージョンが5.5にアップグレードされた後、APIをエミュレートし、自動的に無効にするpassword_compat
と呼ばれるライブラリを使用できます。 PHP 5.5パスワードハッシュAPIは、PHP 5.5以降の機能であり、開発者に安全な方法でパスワードをハッシュして検証する簡単な方法を提供します。機密性の高いユーザーデータを保護するのに役立つため、重要です。データベースがハッキングされている場合、ハッシュパスワードは、単純なテキストパスワードよりもクラックするのが難しいです。 APIは、デフォルトで強力なハッシュ関数Bcryptを使用し、塩値の生成を自動的に処理するため、開発者が安全なパスワード処理を簡単に実装できます。
機能はどのように機能しますか?
関数は、PHP 5.5パスワードハッシュAPIの一部です。プレーンテキストパスワードとハッシュアルゴリズムを入力として受信し、ハッシュパスワードを返します。また、この関数は、ハッシュする前にパスワードにランダム塩値を自動的に生成および適用します。この塩値は返されたハッシュに含まれるため、個別に保存する必要はありません。 password_hash
password_hash
関数は、ハッシュパスワードに基づいてパスワードを検証するために使用されます。プレーンテキストパスワードと入力としてハッシュパスワードを受信します。この関数は、ハッシュされたパスワードから塩の値とハッシュアルゴリズムを抽出し、それらをプレーンテキストパスワードに適用し、結果を元のハッシュされたパスワードと比較します。一致する場合、関数はtrueを返し、パスワードが正しいことを示します。 password_verify
password_verify
PHP 5.5パスワードハッシュAPIのセキュリティはどうですか? PHP 5.5パスワードハッシュAPIは非常に安全であると考えられています。デフォルトでBCRyptハッシュアルゴリズムを使用します。これは、強力なハッシュ機能です。また、APIは各パスワードにランダム塩値を自動的に生成および適用します。これにより、レインボーテーブル攻撃を防ぐのに役立ちます。ただし、すべてのセキュリティ対策と同様に、それは絶対確実ではなく、包括的なセキュリティポリシーの一部として使用する必要があります。
関数でカスタムソルトを使用できますか?
関数でカスタムソルトを使用できますが、これは推奨されません。この機能は、各パスワードのランダム塩値を自動的に生成します。これは通常、カスタムソルトよりも安全です。カスタムソルトを使用することを選択した場合、少なくとも22文字のランダムな文字列にする必要があります。 password_hash
はい、password_hash
関数のコストパラメーターは、ハッシュの計算コストを決定します。コストが高いほどハッシュがより安全になりますが、計算が遅くなります。デフォルトのコストは10です。これは、ほとんどのアプリケーションのセキュリティとパフォーマンスのバランスが取れています。
password_hash
ハッシュパスワードを再ハッシュする必要があるかどうかを確認する方法は?
password_needs_rehash
機能を使用して、ハッシュパスワードを再ハッシュする必要があるかどうかを確認できます。この関数は、ハッシュパスワード、ハッシュアルゴリズム、およびオプションのコストを入力として受信します。ハッシュパスワードが異なるアルゴリズムまたはコストで作成された場合、それは真実で返され、再ハッシュする必要があることを示します。 PHPのPHP 5.5パスワードHASH APIを使用することはできますか?
PASSWORD_DEFAULT
定数ハッシュを使用してパスワードを持っていると、PHPの将来のバージョンでデフォルトのアルゴリズムが変更された場合はどうなりますか? PASSWORD_DEFAULT
定数を使用してパスワードがあり、PHP変更の将来のバージョンのデフォルトのアルゴリズムを使用している場合、password_hash
関数は期待どおりに機能し続けます。ハッシュされたパスワードには、使用されているアルゴリズムに関する情報が含まれているため、password_verify
関数はパスワードを正しく検証できます。 PHP 5.5パスワードHASH APIを使用して非ASCIIパスワードを使用できますか?
password_hash
およびpassword_verify
関数はバイナリデータを使用するため、任意の文字のパスワードを処理できます。ただし、さまざまなシステムがASCII以外の文字を異なる方法で処理する可能性があることに注意する必要があるため、パスワードをハッシュする前に正規化することをお勧めします。
以上がPHP 5.5パスワードハッシュAPIでパスワードをハッシュしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ホットトピック









