【笔记】PHP实现密码加密和校验

前言

PHP实现密码加密和校验

密码加密

PASSWORD_DEFAULT

  • 使用bcypt算法
1
password_hash($password, PASSWORD_DEFAULT);

PASSWORD_BCRYPT

  • 使用CRYPT_BLOWFISH算法

salt:自定义盐值
cost:算法使用的cost

1
2
3
4
5
$options = [
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
'cost' => 10,
]
password_hash($password, PASSWORD_BCRYPT, $options);

PASSWORD_ARGON2I

  • 使用Argon2算法
1
2
3
4
5
6
$options = [
'memory_cost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,
'time_cost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,
'threads' => PASSWORD_ARGON2_DEFAULT_THREADS,
]
password_hash($password, PASSWORD_ARGON2I, $options);

密码校验

1
$result = password_verify($password, $hash);

完成