Middle
Құпиясөздерді сақтау үшін char[] String-ке қарағанда неге артықшылығы бар?
sobes.tech AI
AI-дан жауап
String объектілері өзгермейтін. Бұл дегеніміз, жолды құрғаннан кейін оның мазмұнын өзгерту мүмкін емес. Егер сіз парольді String-те сақтасаңыз, ол жадта мусор жинаушы оны жойғанша қалады. Осы уақыт ішінде зиянкестер жадқа қол жеткізіп, парольді оқи алады.
char[] массивтері өзгертілуі мүмкін. Парольді char[]-те сақтағаннан кейін, массив элементтерін айқын түрде қайта жазуға болады, мысалы, нөлдік таңбалармен. Бұл парольдің жадтан дереу жойылуын қамтамасыз етеді, осылайша құпиялылықтың бұзылу қаупін айтарлықтай төмендетеді.
Сонымен қатар, жолдармен жұмыс істеген кезде, жол пулында (string pool) қосымша көшірмелердің жасалуының қаупі бар, бұл да парольдің жадта болу уақытын ұзартады.
// Парольді char[]-те сақтау және оны тазалау мысалы
char[] password = {'p', 'a', 's', 's', 'w', 'o', 'r', 'd'};
// Парольді пайдалану (мысалы, аутентификация үшін)
// ...
// Пайдаланудан кейін массивті тазалау
java.util.Arrays.fill(password, ' ');
// Енді пароль жадтан жойылды