請特別注意 **$length** 參數!它正是**傳回字串的長度**,而不是原始二進制雜湊結果的長度。
我曾經在這個問題上遇到很大的麻煩 --
我認為 `hash_pbkdf2(...false)` 應該等於 `bin2hex(hash_pbkdf2(...true))`,就像 `md5($x)` 等於 `bin2hex(md5($x, true))`。但是我錯了
hash_pbkdf2('sha256', '123456', 'abc', 10000, 50, false); // 傳回字串 (50) "584bc5b41005169f1fa15177edb78d75f9846afc466a4bae05"
hash_pbkdf2('sha256', '123456', 'abc', 10000, 50, true); // 傳回字串 (50) "XKŴ��Qw�u��j�FjK���BFW�YpG �mp.g2�`;N�"
bin2hex(hash_pbkdf2('sha256', '123456', 'abc', 10000, 50, true)); // 傳回字串 (100) "584bc5b41005169f1fa15177edb78d75f9846afc466a4bae05119c82424657c81b5970471f098a6d702e6732b7603b194efe"
所以我新增了這個註解。希望它能幫助其他像我一樣的人。