Şeýle soragy Java Junior wezipesi üçin geçirilen söhbetdeşlikde eşidip bilersiňiz. Friendöne dostumdan Tehniki Gurşun wezipesi barada söhbetdeşlik wagtynda soraldy.
Bularyň ikisi
String
hem, nyşanlaryň massiwi tekst maglumatlary saklamak üçin ulanylyp bilner. Emma belli bir mesele üçin birini ýa-da birini saýlamak, henizem şuňa meňzeş ýagdaýa duş gelmedik bolsaňyz kyn. Şeýle-de bolsa, dostumyň belleýşi ýaly, islendik sorag
String
, adatça üýtgewsizlik () diýilýän setirleriň aýratyn emlägini öz içine alýar
Immutable
we söhbetdeşlikde bu pursatdan peýdalandy.
char []
Şeýlelik bilen, parolyňyzy saklamak üçin ulanmagyň däl-de, ulanmagyň birnäçe sebäbine seredeliň
String
.
Sebäp 1. Setirler üýtgewsiz
Java-da setirler üýtgewsiz bolansoň, ýönekeý tekst parolyňyz, zibil ýygnaýjy arassalanýança ýatda saklanar.
String
Gaýtadan ulanmak üçin ulanylýandygy sebäpli
String pool
, parolyň uzak wagtlap ýatda galmagy gaty ähtimal, bu asla howpsuz däl.
Java String basseýni, ýörite ýerde - üýşmeleňde ýerleşýän howuz ýa-da obýektler (setirler). Java-da setir maglumatlaryň iň köp ýaýran görnüşlerinden biridir. Bu ýönekeý görnüş däl-de, bir zat, sebäbi gaty serişde talap edýär. Şeýlelik bilen, dört simwoldan ybarat bir setir saklamak üçin 56 baýt ýady bölmeli. Şonuň üçin setirler, beýleki zatlar ýaly, üýşmeleňde saklanýar. |
Memoryat zibilhanasyna girip bilýän islendik adam paroly ýönekeý tekstde däl-de, kodlanan paroly ulanmagyň gowy sebäbi bolan aç-açan tekstde tapyp biler. Setirler üýtgewsiz bolany üçin, mazmunyny üýtgedip bolmaz. Islendik üýtgeşiklik täze setir döreder. Emma
char []
, onuň elementleriniň islendigini nol ýa-da boş nyşan bilen çalşyp bilersiňiz. Şeýlelik bilen, paroly simwol massiwinde saklamak, paroly saklamak howpuny aç-açan azaldar.
Sebäp 2. Awtorlaryň teklipleri
Java-yň özi (elbetde, döredijileriniň üsti bilen)
getPassword ()
synpdan
JPasswordField
gaýdyp gelýän usuly ulanmagy maslahat berýär
char []
. Könelişen usuly hem synap bilersiňiz
getText ()
. Näme üçin dil awtorlarynyň maslahatlaryny ýerine ýetirmeli däl?
Sebäp 3. Çap et
Bir görnüşi bilen,
String
setirde saklanýan tekstiň gündelik faýlda ýa-da konsolda çap edilmegi howpy bar. Şol bir wagtyň özünde, ulansaňyz
Array
, massiwiň mazmunyny çap etmersiňiz, diňe ýadynda ýerleşer. Elbetde, bu düýpli sebäp däl, ýöne şonda-da manysy bar.
String strPassword = "Unknown";
char [] charPassword = new char [] {'U', 'n', 'k', 'w', 'o', 'n'};
System.out.println ("String password:" + strPassword);
System.out.println ("char password:" + charPassword);
String password: Unknown
Character password: [C@110b053
Elbetde,
char []
parollary saklamak üçin Java-dan peýdalanmak howsala däl. Haslar bilen işlemek we açarsözleri aç-açan tekstde saklamak däl-de, şifrlemek ýaly howpsuzlyk çäreleri görmeli. Elbetde, tassyklamak prosedurasyndan soň derrew ýatdan pozuň.
“Javarevisited” -iň materiallaryna esaslanýar
GO TO FULL VERSION