Creando un PIN seguro en Java

0

Necesito crear un número de PIN seguro criptográficamente en Java usando una identificación secreta para cada usuario.

Este enfoque simple viene a la mente:

int getPin(String secretUserIdStr)
{
    String pepper = "randomPepper...";
    String seed = secretUserIdStr + pepper;

    SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "SUN");  
    sr.setSeed(seed.getBytes());

    return sr.nextInt(10000);
}

¿Es esta buena idea? ¿Es seguro? Si no, ¿cuál es la mejor práctica?

    
pregunta h9lpq0u 10.12.2014 - 16:06
fuente

1 respuesta

3

No lo hagas. Razón: principios generales. ("No hagas rodar tu propia criptografía")

Estás derivando una clave (algo secreto) de algo más secreto. No necesitas inventar un procedimiento por ti mismo. Ir con una función de derivación clave establecida. Algo como PBKDF2 .

    
respondido por el StackzOfZtuff 10.12.2014 - 16:27
fuente

Lea otras preguntas en las etiquetas