Oggi stavo usando hash_pbkdf2 quando ho notato qualcosa di strano.
Il modo normale per generare un hash è quello di produrre l'intera stringa come il codice qui sotto che emette una stringa di 128 caratteri (128 caratteri, 4 bit ciascuno, 512 bit totali):
echo hash_pbkdf2("sha512", "123456", "test", 30000, 0);
c7b35be6c57b716fe4beb1ca33341ea32cb0de817636c115244db9c57cea1120828ea2b9f19805b24667c876d7b0e5ec4a3b05b3b793845ece2404106d781cda
Tuttavia ho fatto un errore minore che ho notato che emetteva un intero mucchio di dati extra:
echo hash_pbkdf2("sha512", "123456", "test", 30000, 512);
c7b35be6c57b716fe4beb1ca33341ea32cb0de817636c115244db9c57cea1120828ea2b9f19805b24667c876d7b0e5ec4a3b05b3b793845ece2404106d781cda6b38792a96c1677e897dc7640c759dc660b02bdd6b590e6b90edc88484a03bbc8d5abf598cfe0493d99aea0074ba9d66c16ecc5ab92b02e27eece56253b6c55546bc0d699129d726fc9c794baaa7bbda45625e7f7efbf958baf3f77236eadd3e4b86beaf7ed302f995096ad08e95fe078a0bb0ad0ff5dd672aac76fc335b6746ee177d6f2133de667a8a49a1356129d2a34a3a57aeb341101cd78fd8998d11910d926576427da7a02da554a787efe782fe7d26f01fe3e4f8bf4f4f352470725c
Quali sono gli output esadecimali extra di questo codice errato, ho avuto l'impressione che SHA-512 potesse emettere solo un massimo di 512 bit?