Потому что char[] будет на стеке и быстро затрётся данными. А String может прожить в памяти, до сборки мусора, неопределённое время. А вдруг там какая-нибудь хакерская приблуда? Вот для уменьшение времени жизни пароля его в char[] и хранят везде.
PS: может и паранойя авторов.
PPS: я в клиенте jboss7 без хранения пароля в String не обойтись никак...
Security note: If an application needs to read a password or other secure data, it should use readPassword() or readPassword(String, Object...) and manually zero the returned character array after processing to minimize the lifetime of sensitive data in memory.
Я прогнал, прошу прощения. Массив будет хранится на стеке только если он не передаётся никуда (в т.ч. return). Т.е. в даннм случае будет в куче. Остаётся- да, зачистка массива (которая возможно, в отличии от).
там имхо какая то лажа, "массив на стеке" в Java это жесть.. на стеке будет лежать указатель на массив в хипе и этот объект в хипе, разве что действительно что бы меньше было возможностей для хака, а может быть этот метод реализован явой как интринсик, но чем легковеснее конечно тем быстре сотрется
тоже верно p.s. при текущей кешируемости процов, надо тогда не забыть еще обеспецить гарантию что наши нули дошли до места и не только в нашем потоке видны ))
no subject
Date: 2013-07-03 07:13 am (UTC)no subject
Date: 2013-07-03 07:16 am (UTC)А вдруг там какая-нибудь хакерская приблуда? Вот для уменьшение времени жизни пароля его в char[] и хранят везде.
PS: может и паранойя авторов.
PPS: я в клиенте jboss7 без хранения пароля в String не обойтись никак...
no subject
Date: 2013-07-03 07:26 am (UTC)no subject
Date: 2013-07-03 07:27 am (UTC)no subject
Date: 2013-07-03 07:28 am (UTC)no subject
Date: 2013-07-03 07:35 am (UTC)Если переменная локальная- то на стеке.
Если переменная класса- то да, в куче. Но типа сам виноват, если что :)
no subject
Date: 2013-07-03 07:35 am (UTC)Security note: If an application needs to read a password or other secure data, it should use readPassword() or readPassword(String, Object...) and manually zero the returned character array after processing to minimize the lifetime of sensitive data in memory.
no subject
Date: 2013-07-03 07:54 am (UTC)no subject
Date: 2013-07-03 07:58 am (UTC)no subject
Date: 2013-07-03 07:58 am (UTC)no subject
Date: 2013-07-03 08:15 am (UTC)Но результат будет малоприятен для применяющего, это да...
no subject
Date: 2013-07-03 08:50 am (UTC)no subject
Date: 2013-07-03 08:51 am (UTC)no subject
Date: 2013-07-03 08:55 am (UTC)no subject
Date: 2013-07-03 09:01 am (UTC)no subject
Date: 2013-07-03 09:34 am (UTC)no subject
Date: 2013-07-03 09:39 am (UTC)no subject
Date: 2013-07-03 10:21 am (UTC)no subject
Date: 2013-07-03 03:06 pm (UTC)no subject
Date: 2013-07-03 03:10 pm (UTC)no subject
Date: 2013-07-03 03:11 pm (UTC)p.s.
при текущей кешируемости процов, надо тогда не забыть еще обеспецить гарантию что наши нули дошли до места и не только в нашем потоке видны ))
no subject
Date: 2013-07-03 03:12 pm (UTC)