Я не думаю, что это правильное предложение, но я могу по крайней мере угадать причину.
Я думаю, что мотивация хочет убедиться, что вы можете стереть все следы пароля в памяти быстро и с уверенностью после его использования. С помощью char[]
вы можете переписать каждый элемент массива с пустым или что-то точно. Вы не можете редактировать внутреннее значение String
таким образом.
Но это одно не является хорошим ответом; почему бы не просто убедиться, что ссылка на char[]
или String
не исчезает? Тогда нет проблем с безопасностью. Но дело в том, что String
объекты могут быть intern()
изложены в теории и сохранены в постоянном пуле. Я полагаю, что использование char[]
запрещает эту возможность.