Есть ли простой способ проверить, содержит ли один массив другой массив в Java?Проверьте, содержит ли примитивный массив другой массив
По существу, я хочу сделать что-то вроде этого:
private static final String NOT_ALLOWED;
public boolean isPasswordOkay(char[] password){
return new String(password).contains(NOT_ALLOWED);
}
... но без преобразования пароля к String
, который Sun indicates could be a security risk. Есть ли более аккуратный метод, чем ручное повторение по каждому элементу массива?
Почему преобразование char [] в String представляет собой угрозу безопасности? Строка содержит char [] внутри нее (это реализация) –
@Brian: Строки представляют собой риск безопасности, поскольку они копируют char [] и могут храниться в памяти на неопределенный промежуток времени (потому что они могут быть GCed намного позже): http://securesoftware.blogspot.com/2009/01/java-security-why-not-to-use-string.html –
Строки обрабатываются специально сборщиком мусора и неизменны, поэтому нет способа гарантировать, что они не останется в памяти после того, как вы закончите с ними: http://securesoftware.blogspot.com/2009/01/java-security-why-not-to-use-string.html – Scott