hash_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

hash_pbkdf2�������ṩ����� PBKDF2 ��Կ����

˵��

hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = FALSE ]] ) : string

����

algo

��ϣ�㷨���ƣ����� md5��sha256��haval160,4 �ȡ� ��֧�ֵ��㷨�嵥��μ� hash_algos()��

password

Ҫ���е��������롣

salt

���е���ʱ��ʹ�õ�"��"�����ֵӦ����������ɵġ�

iterations

���е���ʱ�ĵ���������

length

��Կ�������ݵij��ȡ���� raw_output Ϊ TRUE�� �˲���Ϊ��Կ�������ݵ��ֽڳ��ȡ���� raw_output Ϊ FALSE�� �˲���Ϊ��Կ�������ݵ��ֽڳ��ȵ� 2 ������Ϊ 1 ���ֽ����ݶ�Ӧ�� 2 �� 16 ���Ƶ��ַ���

������� 0����ʹ����ѡ�㷨�����������С��

raw_output

����Ϊ TRUE ���ԭʼ���������ݣ� ����Ϊ FALSE ���Сд 16 �����ַ�����

����ֵ

��� raw_output ����Ϊ TRUE�� �򷵻�ԭʼ���������ݱ�ʾ����ϢժҪ�� ���򷵻� 16 ����Сд�ַ�����ʽ��ʾ����ϢժҪ��

�����쳣

����������»���� E_WARNING�� ָ����δ֪���㷨�� iterations С�ڵ��� 0�� length С�ڵ��� 0 ���� salt ���������� INT_MAX - 4����

������־

�汾 ˵��
7.2.0 ����֧�ַǼ��ܵĹ�ϣ������adler32��crc32��crc32b��fnv132��fnv1a32��fnv164��fnv1a64��joaat����

����

Example #1 hash_pbkdf2() ���̣������÷�

<?php
$password 
"password";
$iterations 1000;

// ʹ�� openssl_random_pseudo_bytes()��random_bytes()�������������ʵ���������ɺ���
// �����������ʼ����
$salt openssl_random_pseudo_bytes(16MCRYPT_DEV_URANDOM);

$hash hash_pbkdf2("sha256"$password$salt$iterations20);
echo 
$hash;
?>

�������̵���������ڣ�

120fb6cffcf8b32c43e7

ע��

Caution

Ϊ�˰�ȫ���������ʹ�� PBKDF2 �������������Ľ��й�ϣ������ٴ洢�� ���Ǹ��õķ�����ʹ�� password_hash() ���� ����ʹ�� CRYPT_BLOWFISH �㷨���� crypt() ������

�μ�

  • crypt() - �����ַ���ɢ��
  • password_hash() - ���������ɢ�У�hash��
  • hash() - ���ɹ�ϣֵ ����ϢժҪ��
  • hash_algos() - ������ע��Ĺ�ϣ�㷨�б�
  • hash_init() - ��ʼ��������ϣ����������
  • hash_hmac() - ʹ�� HMAC �������ɴ�����Կ�Ĺ�ϣֵ
  • hash_hmac_file() - ʹ�� HMAC �����͸����ļ����������ɴ���Կ�Ĺ�ϣֵ
  • openssl_pbkdf2() - ����һ�� PKCS5 v2 PBKDF2 �ַ���