Estuve usando hash_pbkdf2 más temprano hoy cuando noté algo extraño.
La forma normal de generar un hash es generar la cadena completa como el código a continuación que genera una cadena de 128 caracteres (128 caracteres, 4 bits cada uno, 512 bits en total):
echo hash_pbkdf2("sha512", "123456", "test", 30000, 0);
c7b35be6c57b716fe4beb1ca33341ea32cb0de817636c115244db9c57cea1120828ea2b9f19805b24667c876d7b0e5ec4a3b05b3b793845ece2404106d781cda
Sin embargo, cometí un pequeño error que noté que generaba una gran cantidad de datos adicionales:
echo hash_pbkdf2("sha512", "123456", "test", 30000, 512);
c7b35be6c57b716fe4beb1ca33341ea32cb0de817636c115244db9c57cea1120828ea2b9f19805b24667c876d7b0e5ec4a3b05b3b793845ece2404106d781cda6b38792a96c1677e897dc7640c759dc660b02bdd6b590e6b90edc88484a03bbc8d5abf598cfe0493d99aea0074ba9d66c16ecc5ab92b02e27eece56253b6c55546bc0d699129d726fc9c794baaa7bbda45625e7f7efbf958baf3f77236eadd3e4b86beaf7ed302f995096ad08e95fe078a0bb0ad0ff5dd672aac76fc335b6746ee177d6f2133de667a8a49a1356129d2a34a3a57aeb341101cd78fd8998d11910d926576427da7a02da554a787efe782fe7d26f01fe3e4f8bf4f4f352470725c
¿Cuáles son los resultados hexadecimales adicionales de este código incorrecto? Tenía la impresión de que SHA-512 solo podía generar un máximo de 512 bits?