Creazione di un PIN sicuro in Java

0

Ho bisogno di creare un codice PIN crittograficamente sicuro in Java usando l'ID segreto per ciascun utente.

Questo semplice approccio mi viene in 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);
}

Questa è una buona idea? È sicuro? In caso contrario, qual è la migliore pratica?

    
posta h9lpq0u 10.12.2014 - 16:06
fonte

1 risposta

3

Non farlo. Motivazione: principi generali. ("Non eseguire la crittografia personalizzata.")

Stai ricavando una chiave (qualcosa di segreto) da qualcos'altro segreto. Non è necessario inventare una procedura per te stesso. Vai con una funzione di derivazione della chiave stabilita. Qualcosa come PBKDF2 .

    
risposta data 10.12.2014 - 16:27
fonte

Leggi altre domande sui tag