PHPの基礎 - ハッシュ

提供:MochiuWiki : SUSE, EC, PCB
2024年11月5日 (火) 00:35時点におけるWiki (トーク | 投稿記録)による版 (文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag…)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要



パスワード

パスワードのハッシュ化

PHPには、パスワードのハッシュ化に特化したpassword_hash関数を使用することが推奨される。

password_hash関数は、使用しているPHPのバージョンでデフォルトで使用されているアルゴリズムを自動的に選択して、
ソルト(ランダムな値)を自動的に生成することにより、安全なハッシュを生成する。
デフォルトでは、PHPのバージョンに応じて、BCRYPTまたはARGON2アルゴリズムが使用される。

以下の例では、password_hash関数を使用してパスワードをハッシュ化している。

 $password = "your_password";
 $hashed_password = password_hash($password, PASSWORD_DEFAULT);


password_hash関数の第1引数にハッシュ化したいパスワード、第2引数にアルゴリズムを指定する。
PASSWORD_DEFAULTは、現在のPHPのバージョンでデフォルトで使用されているアルゴリズムを指す。

ただし、特定の理由でSHA-512アルゴリズム等を使用する必要がある場合は、hash関数を使用することができる。
以下の例では、hash関数を使用して、SHA-512アルゴリズムでハッシュ化している。

 $password = "your_password";
 $hashed_password = hash("sha512", $password);


hash関数の第1引数にアルゴリズムとして"sha512"を指定して、第2引数にハッシュ化したいパスワードを渡す。
hash関数は、指定されたアルゴリズムを使用してパスワードをハッシュ化して、ハッシュ値を返す。

ただし、SHA-512アルゴリズムは、現在のセキュリティ基準では十分でない可能性があることに注意する。
セキュリティの観点から、password_hash関数を使用してパスワードをハッシュ化することを推奨する。

パスワードの照合

ハッシュ化されたパスワードの照合は、password_verify関数を使用する。
password_verify関数は、入力したパスワードとハッシュ化されたパスワードを比較して、一致する場合はtrue、一致しない場合はfalseを返す。

 if (password_verify($password, $hashed_password)) {
    // パスワードが一致する場合の処理
 }
 else {
    // パスワードが一致しない場合の処理
 }