Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Я вручную генерирую довольно твердые, чтобы помнить строки символов, чисел и прописных и строчных букв, которые обычно похожи leetspeak.
Пример:
&p0pul4rw3b$ite!
Затем я храню их как почтовый проект, к которому я могу получить доступ отовсюду через веб-почту.
Если Вы хотите генерировать пароли, которые легче для пользователей помнить, смотреть на Цепи Маркова. http://en.wikipedia.org/wiki/Markov_chain
Этот алгоритм может произвести слова ерунды, которые могут быть произнесены, таким образом, они также становятся легче помнить и передать по телефону. Немного Google-fu может получить Вас некоторые примеры кода на примерно любом языке.
необходимо было бы также получить хороший словарь для отфильтровывания любых паролей, которые выходят как фактические слова.
, Конечно, они не будут высокопрочными паролями, но действительно хороши, когда Вам нужно некоторое основное управление доступом на чем-то, и Вы не хотите обременять своих пользователей трудно для запоминания паролей.
Я обычно использую пароль, безопасный генерировать случайные пароли. Для паролей я на самом деле хочу смочь помнить без безопасного пароля, я обычно беру слово и число, и чередую символы
, Таким образом, Вы берете слово.
бейсбол
и номер
24681357
и Вы получаете пароль
b2a4s6e8b1a3l5l7
, Это выглядит довольно случайным, и вероятно было бы твердо к грубой силе. Также довольно легко ввести большую часть времени. Вы просто вводите слово, и затем кладете обратно Ваш курсор к второму символу и вводите число, и между каждым символом нажимают правильные клавиши управления курсором. Мало того, что это помогает ввести, это также мешает клавиатурным перехватчикам записывать то, что Вы на самом деле вводите.
Эта острота Perl иногда помогает (rand
, не безопасно, но она часто не имеет значения):
$ perl -E"say map { chr(33 + rand(126-33)) } 1..31
пример произвел:
ET<2:k|D:!z)nBPMv+yitM8x`r.(WwO
makepasswd генерирует истинные случайные пароли при помощи/dev/random функции Linux с акцентом на безопасность по pronounceability. Это может также зашифровать незашифрованные пароли, данные на командной строке.
самые известные опции
--crypt-md5 Produce encrypted passwords using the MD5 digest algorithm --string STRING Use the characters in STRING to generate random passwords
, Первый мог использоваться для автоматической генерации/etc/passwd,/etc/cvspasswd, и т.д. записи. Последний полезен для добавления знаков пунктуации в пароли, (сгенерированным паролем значения по умолчанию содержит только алфавитно-цифровые символы).
makepasswd был первоначально частью mkircconf программы, используемой для центрального администрирования сети Linux Internet Support Cooperative IRC.