SORU
16 Ocak 2012, PAZARTESİ


Neden char[] şifreler için Dize Java tercih edilir?

Salıncak, parola alanı getText() (döner String) her zamanki yöntemi yerine getPassword() (döner char[]) bir yöntemi vardır. Benzer şekilde, String şifreleri işlemek için kullanmak için bir öneri ile karşılaştım.

Neden String şifreler geldiğinde güvenlik için bir tehdit teşkil ediyor mu? char[] kullanmak için rahatsız edici bir his.

CEVAP
16 Ocak 2012, PAZARTESİ


Dizeleri değişmez. String oluşturduktan sonra demek ki, eğer başka bir işlem bellek dökümü, GC devreye girmeden veri kurtulmak (kenara yansıması) yok.

Bir dizi, açıkça wipe data sonra işin bitti bu: üzerine yaz dizisi olan sana bir şey gibi, ve şifre olmayacak yerde mevcut sistem bileönceçöp toplama.

Yani evet, buGüvenlik bir endişe - ama kullanma char[] sadece bileazaltırbir saldırgan için fırsat penceresi, yalnızca saldırı bu tür için.

EDİT: yorumlarda da belirtildiği Gibi, diziler çöp toplayıcı tarafından taşınan bellek veri yolunu şaşırmış kopya bırakacak olması muhtemel. Bu uygulama-özel - GC olduğuna inanıyorumolabilirtüm bellek gider gibi, bu tür bir şey önlemek için temizleyin. Eğer varsa bile, hala hangi sırasında char[] saldırı bir pencere gibi gerçek karakterler içeren zaman var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • isupportthegosselins

    isupporttheg

    6 Aralık 2009
  • SegaAmerica

    SegaAmerica

    5 Mart 2008