2011-10-22 2 views
7

Estoy implementando licencias en mi aplicación Android, y hay una matriz de 20 bytes que deben pasarse al AESObfuscator que se pasa al objeto ServerManagedPolicy. ¿Se puede generar esta matriz aleatoriamente cada vez que se ejecuta el código, o tiene que estar codificado?Android: ¿Los bytes de SALT aleatorios pasados ​​a AESObfuscator deben permanecer igual?

En este momento estoy generación aleatoria de la sal de la siguiente manera:

private static final byte[] SALT; 

static { 
    Random random = new Random(); 
    random.setSeed(System.currentTimeMillis()); 
    byte[] buf = new byte[20]; 
    random.nextBytes(buf); 
    SALT = buf; 
} 

Respuesta

6

Un poco tarde, pero sí : la sal debe seguir siendo el mismo para ser capaz de descifrar los valores almacenados de nuevo.

Básicamente Salar significa aleatorizar una frase de contraseña para hacer que los ataques de diccionario sean mucho más difíciles. How does a salt protect against a dictionary attack?

Update (un año más tarde :) Por cierto: usar un generador SecureRandom de los bytes en lugar de un generador aleatorio - es mejor (podía entrar en detalles, pero se puede encontrar que en otros lugares también. http://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html)

Cuestiones relacionadas