ホームページ >バックエンド開発 >PHPチュートリアル >[ハッシュパスワード] PHPはmd5よりも安全な暗号化方式です

[ハッシュパスワード] PHPはmd5よりも安全な暗号化方式です

藏色散人
藏色散人転載
2019-09-02 14:40:414745ブラウズ

従来の暗号化方式:

md5 (パスワード ソルト値);

$passwordString='your password';//你的密码
$salt="your salt value";//盐值,增加复杂度(随机字串)
$md5Password=md5($passwordString.$salt);

理論的には、md5 は元に戻すことができず、比較的安全な暗号化方式です。しかし、md5 は 2004 年には中国人によってクラックされていることを思い出していただきたいと思います。誰かがデータベースをドラッグすると、パスワードが漏洩する可能性が非常に高くなります。

ここで、新しい処理方法を推奨します:

パスワード ハッシュ アルゴリズム関数

password_get_info — 指定されたハッシュ情報を返します ( hash)

password_hash — パスワードのハッシュを作成します (hash)

password_needs_rehash ##—指定されたハッシュが指定されたオプションと一致するかどうかを確認します

password_verify — パスワードがハッシュと一致するかどうかを確認します

PHP5.5 ではパスワード ハッシュ関数が導入されています。この関数はカーネルに付属しており、拡張機能のインストールは必要ありません。 PHP5.4でのテストも可能ですが、ご利用前に現在の環境がこれらの機能に対応しているかご確認ください。

パスワードハッシュは主に 4 つの機能を提供します

//查看哈希值的相关信息
array password_get_info (string $hash)
 
//创建hash密码
string password_hash(string $password , integer $algo [, array $options ])
 
//判断hash密码是否特定选项、算法所创建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 
 
boolean password_verify (string $password , string $hash)
//验证密码

コードのデモ:

$password = 'password123456';//原始密码
//使用BCRYPT算法加密密码
$hash_password = password_hash($password, PASSWORD_BCRYPT);
 
 
if (password_verify($password , $hash_password)){
   echo "密码匹配";
}else{
   echo "密码错误";
}

重要な機能:

password_hash による暗号化後のパスワード生成されるパスワードは毎回異なるため、辞書方式で解読するのは困難です。この暗号化はブルートフォースを使用してのみ解読できます。

最後の注意:

どんなに優れた暗号化方式であっても、元のパスワードが単純すぎると簡単に破られてしまいます。一番いい方法。

以上が[ハッシュパスワード] PHPはmd5よりも安全な暗号化方式ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。