> 백엔드 개발 > PHP 문제 > PHP 비밀번호 암호화 방법은 무엇입니까?

PHP 비밀번호 암호화 방법은 무엇입니까?

青灯夜游
풀어 주다: 2023-03-11 09:56:02
원래의
6196명이 탐색했습니다.

php密码加密方法:1、使用password_hash(),语法“password_hash(密码,PASSWORD_BCRYPT)”;2、使用password_verify(),语法“password_verify(密码,hash)”。

PHP 비밀번호 암호화 방법은 무엇입니까?

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

php推荐密码加密的方法

1、password_hash() 函数

password_hash() 函数用于创建密码的散列(hash)

password_hash (password,algo[,options])
로그인 후 복사

password_hash() 使用足够强度的单向散列算法创建密码的散列(hash)。 password_hash() 兼容 crypt()。 所以, crypt() 创建的密码散列也可用于 password_hash()。

当前支持的算法:

  • PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)。 注意,该常量会随着 PHP 加入更新更高强度的算法而改变。 所以,使用此常量生成结果的长度将在未来有变化。 因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。

  • PASSWORD_BCRYPT - 使用 CRYPT_BLOWFISH 算法创建散列。 这会产生兼容使用 "$2y$" 的 crypt()。 结果将会是 60 个字符的字符串, 或者在失败时返回 FALSE。

  • PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列。

注意,该常量会随着 PHP 加入更新更高强度的算法而改变。 所以,使用此常量生成结果的长度将在未来有变化。 因此,数据库里储存结果的列可

超过60个字符(最好是255个字符)。

PASSWORD_BCRYPT - 使用 CRYPT_BLOWFISH 算法创建散列。 这会产生兼容使用 "$2y$" 的 crypt()。

结果将会是 60 个字符的字符串, 或者在失败时返回 FALSE。

PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列。

2、password_verify()函数

password_verify()函数用于验证密码是否和散列值匹配。

password_verify ( password , hash )
로그인 후 복사

参数说明:

  • password:用户的密码。

  • hash:一个由password_hash()创建的散列值。

返回值

如果密码和散列值匹配则返回TRUE,否则返回FALSE。

案例:

$a = password_hash("112233",PASSWORD_BCRYPT);
dump($a);//$2y$10$KgllhWiKePNN2z3k1zr3eea3giNkS57rGii0/r/u8lZE8K96nhJt6

$b = password_verify("112233",$a);
dump($b);//true
로그인 후 복사

推荐学习:《PHP视频教程

위 내용은 PHP 비밀번호 암호화 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿