2011-10-22 14 views
7

Wdrażam licencjonowanie w mojej aplikacji na Androida i istnieje tablica 20 bajtów, które należy przekazać do AESObfuscator przekazanego do obiektu ServerManagedPolicy. Czy tablica ta może być generowana losowo za każdym razem, gdy kod jest uruchamiany, czy też musi być na stałe?Android: Czy losowe bajty SALT przekazane do AESObfuscator muszą pozostać takie same?

Teraz jestem losowo generowania soli tak:

private static final byte[] SALT; 

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

Odpowiedz

6

Trochę późno, ale tak: sól musi pozostać taka sama, aby móc ponownie odszyfrować zapisanych wartości.

W zasadzie Solenie oznacza randomizację hasła, aby ataki słownikowe były znacznie trudniejsze. How does a salt protect against a dictionary attack?

Update (rok później :) Przy okazji: użyć generatora SecureRandom dla bajtów zamiast generatora losowego - to lepiej (mogę wchodzić w szczegóły, ale może się okazać, że gdzie indziej, jak również. http://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html)

Powiązane problemy