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?