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

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • We've moved!

    We've moved!

    7 Ocak 2008
  • STITCHLESS TV how to sew your own style tutorials

    STITCHLESS T

    9 HAZİRAN 2011