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

  • HuskyStarcraft

    HuskyStarcra

    4 HAZİRAN 2009
  • LatinNinja99

    LatinNinja99

    28 EKİM 2011
  • technodromeband's channel

    technodromeb

    28 NİSAN 2011

İLGİLİ SORU / CEVAPLAR