2011-10-22 14 views
7

Tôi đang triển khai cấp phép trong ứng dụng Android của mình và có một mảng 20 byte cần được chuyển vào AESObfuscator được chuyển tới đối tượng ServerManagedPolicy. Mảng này có thể được tạo ngẫu nhiên mỗi khi mã được chạy hay không nó phải được mã hóa cứng?Android: Các byte SALT ngẫu nhiên được chuyển tới AESObfuscator có cần giữ nguyên không?

Ngay bây giờ tôi đang tạo ra một cách ngẫu nhiên muối như thế này:

private static final byte[] SALT; 

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

Trả lời

6

Một hơi muộn, nhưng : muối phải vẫn như cũ để có thể giải mã các giá trị được lưu trữ lại.

Về cơ bản Salting có nghĩa là ngẫu nhiên cụm mật khẩu để làm cho các cuộc tấn công từ điển khó hơn rất nhiều. How does a salt protect against a dictionary attack?

Cập nhật (một năm sau đó :) Bằng cách: sử dụng một máy phát điện SecureRandom cho các byte thay cho một máy phát ngẫu nhiên - đó là tốt hơn (tôi có thể đi sâu vào chi tiết, nhưng bạn có thể thấy rằng ở những nơi khác là tốt. http://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html)