Si está utilizando la salida para el hashing de contraseñas, entonces la longitud de salida:
- no debe ser mayor que el tamaño de salida del hash nativo
- SHA-1 es 20 bytes, SHA-224 es 28 bytes, SHA-256 es 32 bytes, SHA-384 es 48 bytes, SHA-512 es 64 bytes
- No debe ser inferior a su tolerancia al riesgo. En la práctica, diría que cualquier cosa inferior a 20 bytes (tamaño de salida nativo SHA-1) es demasiado pequeño.
Si está utilizando la salida directamente como una sola clave de cifrado:
- Debe ser igual al tamaño de la clave de cifrado que necesita
- Lo ideal es que no sea más que el tamaño de salida del hash nativo (ver arriba)
Si está utilizando la salida como una clave de cifrado y una MAC, o en cualquier otro caso en el que esté utilizando la salida para más de un propósito:
El motivo de "no más que el tamaño de salida del hash nativo" es que RFC2898 sección 5.2, en el Definición de PBKDF2, especifica que si se solicitan más bytes de salida (dkLen) que los que proporciona la función hash nativa, realiza un recuento de iteraciones completas para el primer tamaño de hash nativo, luego otra cuenta de iteraciones completas para el segundo y continúa hasta que haya terminado o tiene que truncar la salida porque el resto de lo que necesita es menor que el tamaño de salida nativo.