Простейшим для вас может быть введение компонента «poll» библиотеки ajax4jsf: https://ajax4jsf.dev.java.net/nonav/documentation/ajax-documentation/entire.html#d0e1955
Это не потребует реконфигурации приложения и больших изменений на странице JSF (добавление компонента a4j: poll добавлено)
Он работал очень хорошо в нескольких моих проектах.
Вы могли бы хотеть посмотреть на:
Я был бы действительно любовь , чтобы видеть, что кто-то реализует пароли с управляющими символами как" <Ctrl>+N
" или даже комбинированные символы как" A+C
" одновременно. Преобразование этого к некоторому двоичному эквиваленту, по моему скромному мнению, сделало бы требования пароля намного легче помнить, быстрее ввести и тяжелее расколоться (Намного больше комбинаций для проверки).
Один способ генерировать пароли, которые 'походят' на слова, состоял бы в том, чтобы использовать цепь Маркова. Цепь Маркова n-градуса является в основном большим набором n-кортежей, которые появляются в Вашем входном корпусе, наряду с их частотой. Например, "муравьед", с цепью Маркова 2-го градуса, генерировал бы кортежи (a, a, 1), (a, r, 2), (r, d, 1), (d, v, 1), (v, a, 1), (r, k, 1). Дополнительно, можно также включать 'виртуальное' начинать-слово и словоупотребления конца.
для создания полезной цепи Маркова в целях, Вы питались бы в большом корпусе английских данных языка - существуют многие доступные, включая, например, Проект Гутенберг - для генерации ряда записей, как обрисовано в общих чертах выше. Для генерации слов естественного языка или предложений, которые по крайней мере главным образом следуют правилам грамматики или составу, 3-я цепь Маркова градуса обычно достаточна.
Затем для генерации пароля Вы выбираете случайный 'стартовый' кортеж от набора, взвешенного его частотой, и производите первую букву. Затем неоднократно выбирайте наугад (снова взвешенный частотой) 'следующий' кортеж - то есть, тот, который запускается с тех же букв, которыми заканчивается Ваш текущий, и имеет, только один обозначает буквами отличающийся. Используя пример выше, предположите, что я запускаю в (a, a, 1), и произвожу 'a'. Мой единственный следующий выбор (a, r, 2), таким образом, я произвел другой 'a'. Теперь, я могу выбрать любого (r, d, 1) или (r, k, 1), таким образом, я выбираю тот наугад на основе их частоты возникновения. Предположим, что я выбираю (r, k, 1) - я произвел 'r'. Этот процесс продолжается, пока Вы не достигаете маркера конца слова или решаете остановиться независимо (так как большинство цепей Маркова формирует циклический график, Вы никогда не можете потенциально заканчивать генерировать, если Вы не применяете искусственное ограничение длины).
В уровне слова (например, каждый элемент кортежа является словом), эта техника используется некоторыми 'ботами разговора' для генерации разумно кажущихся предложений ерунды. Это также используется спаммерами, чтобы попытаться уклониться от спам-фильтров. На уровне буквы, как обрисовано в общих чертах выше, это может использоваться для генерации слов ерунды, в этом случае для паролей.
Один недостаток: Если Ваш входной корпус ничего не содержит кроме букв, ни будут Ваши выходные фразы, таким образом, они не передадут самые 'безопасные' требования пароля. Можно хотеть применить некоторую последующую обработку для заменения некоторыми символами числа или символы.
Бросьте взгляд на gpw инструмент . Пакет также доступен в репозиториях Debian/Ubuntu.
Пароли, генерируемые системой, являются плохой идеей для чего-либо кроме внутренних сервисных учетных записей или временного сброса (и т.д.).
необходимо всегда использовать собственные "пароли", которые легки для Вас помнить, но которые почти невозможно предположить или грубая сила. Например, пароль для моей старой университетской учетной записи был.
Here to study again!
, Который является 20 символами с помощью верхнего регистра и нижнего регистра с пунктуацией. Это - невероятно сильный пароль и нет никакой части программного обеспечения, которое могло генерировать более безопасный, который легче помнить за меня.
Я полностью с rjh. Преимущество просто использования стартовых букв пароля состоит в том, что это выглядит случайным, который делает это чертовски трудным, чтобы помнить, не знаете ли Вы фразу позади него, в случае, если Eve смотрит через Ваше плечо, поскольку Вы вводите пароль.
OTOH, если она видит, что Вы вводите приблизительно 8 символов, среди которых' дважды, и затем 'o' и 'r' она может предположить это правильно в первый раз.
Принуждение использования по крайней мере одной цифры действительно не помогает; Вы просто знаете , что это будет "pa55word" или "passw0rd".
лирика Песни является неистощимым источником паролей.
"But I should have known this right from the start"
становится "bishktrfts". 10 букв, даже только нижний регистр дает Вам 10^15 комбинации, который является много , тем более, что нет никакого ярлыка для взламывания его. (В 1 миллионе комбинаций в секунду требуется 30 лет для тестирования всех 10^15 комбинации.)
Как дополнительное (в случае, если Eve знает, что Вы - полицейский поклонник), Вы могли подкачать, например, 2-я и 3-я буква или взять вторую букву третьего слова. Бесконечные возможности.
Вращение на идее 'пароля' должно взять фразу и записать первые буквы каждого слова во фразе. Например,
"A specter is haunting Europe - the specter of communism."
Становится
asihe-tsoc
, Если фраза, оказывается, имеет punctation, такой как!?, и т.д. - мог бы также пихнуть его там. То же идет для чисел, или просто замените буквами или добавьте соответствующие числа до конца. Например, Karl Marx (кто сказал, что эта кавычка) умер в 1883, итак, почему не 'asihe-tsoc83'?
я уверен, что творческая атака перебором могла извлечь выгоду из статистических свойств такого пароля, но это - все еще порядки величины, более безопасные, чем атака с подбором по словарю.
<час>Другой большой подход должен только составить смешные слова, например, 'Barangamop'. После использования его несколько раз Вы выучите его, но это твердо к "в лоб". Добавьте некоторые числа или пунктуацию для дополнительной защиты, например, '386Barangamop!'
Вот часть 2 Вашей идеи, смоделированной в сценарии оболочки. Это берет 4, 5 и 6 слов буквы (примерно 50 000) из файла словаря Unix на Вашем компьютере, и свяжите те слова на первом символе.
#! /bin/bash
RANDOM=$
WORDSFILE=./simple-words
DICTFILE=/usr/share/dict/words
grep -ve '[^a-z]' ${DICTFILE} | grep -Ee '^.{4,6} Как большинство генераторов пароля, я обманываю путем вывода их в наборах двадцатых. Это часто защищается с точки зрения "безопасности" (кто-то смотрящий через Ваше плечо), но действительно его просто взлом для разрешения пользователю просто выбрать самый дружественный пароль.
я нашел 4 к 6 слова буквы из файла словаря, все еще содержащего неясные слова.
А лучший источник для слов был бы записанным документом. Я скопировал все слова на этой странице и вставил их в текстовый документ и затем выполнил следующий набор команд для получения фактическим английские слова.
perl -pe 's/[^a-z]+/\n/gi' ./624425.txt | tr A-Z a-z | sort -u > ./words
ispell -l ./words | grep -Fvf - ./words > ./simple-words
Тогда я использовал эти приблизительно 500 очень простых слов от этой страницы для генерации следующих паролей со сценарием оболочки - сценарий, между прочим, показывает слова, которые составляют пароль.
backgroundied (background died)
soundecrazy (sounding decided crazy)
aboupper (about upper)
commusers (community users)
reprogrammer (replacing programmer)
alliterafter (alliteration after)
actualetter (actual letter)
statisticrhythm (statistical crazy rhythm)
othereplacing (other replacing)
enjumbling (enjoying jumbling)
feedbacombination (feedback combination)
rinstead (right instead)
unbelievabut (unbelievably but)
createdogso (created dogs so)
apphours (applications phrase hours)
chainsoftwas (chains software was)
compupper (computer upper)
withomepage (without homepage)
welcomputer (welcome computer)
choosome (choose some)
Некоторыми результатами там являются победители.
прототип показывает, что может, вероятно, быть сделан, но аналитика, которой Вы требуете об аллитерации или информации о слоге, требует лучшего источника данных, чем просто слова. Вам была бы нужна информация о произношении. Кроме того, я показал, что Вы, вероятно, хотите, чтобы база данных хороших простых слов выбрала из, а не весь слова, лучше удовлетворила Ваше требование незабываемого пароля.
Генерация единого пароля в первый раз и каждый раз - что-то Вам нужно для сети - возьмет и лучший источник данных и больше изощренности. Используя лучший язык программирования, чем Bash с текстовыми файлами и использованием базы данных мог заставить это работать мгновенно. Используя систему баз данных Вы могли использовать алгоритм SOUNDEX или некоторых такой.
Отличная идея. Удача.
> ${WORDSFILE}
N_WORDS=$(wc -l < ${WORDSFILE})
for i in $(seq 1 20); do
password=""
while [ ! "${#password}" -ge 8 ] || grep -qe"^${password}$" ${DICTFILE}; do
while [ -z "${password}" ]; do
password="$(sed -ne "$(( (150 * $RANDOM) % $N_WORDS + 1))p" ${WORDSFILE})"
builtfrom="${password}"
done
word="$(sort -R ${WORDSFILE} | grep -m 1 -e "^..*${password:0:1}")"
builtfrom="${word} ${builtfrom}"
password="${word%${password:0:1}*}${password}"
done
echo "${password} (${builtfrom})"
done
Как большинство генераторов пароля, я обманываю путем вывода их в наборах двадцатых. Это часто защищается с точки зрения "безопасности" (кто-то смотрящий через Ваше плечо), но действительно его просто взлом для разрешения пользователю просто выбрать самый дружественный пароль.
я нашел 4 к 6 слова буквы из файла словаря, все еще содержащего неясные слова.
А лучший источник для слов был бы записанным документом. Я скопировал все слова на этой странице и вставил их в текстовый документ и затем выполнил следующий набор команд для получения фактическим английские слова.
perl -pe 's/[^a-z]+/\n/gi' ./624425.txt | tr A-Z a-z | sort -u > ./words
ispell -l ./words | grep -Fvf - ./words > ./simple-words
Тогда я использовал эти приблизительно 500 очень простых слов от этой страницы для генерации следующих паролей со сценарием оболочки - сценарий, между прочим, показывает слова, которые составляют пароль.
backgroundied (background died)
soundecrazy (sounding decided crazy)
aboupper (about upper)
commusers (community users)
reprogrammer (replacing programmer)
alliterafter (alliteration after)
actualetter (actual letter)
statisticrhythm (statistical crazy rhythm)
othereplacing (other replacing)
enjumbling (enjoying jumbling)
feedbacombination (feedback combination)
rinstead (right instead)
unbelievabut (unbelievably but)
createdogso (created dogs so)
apphours (applications phrase hours)
chainsoftwas (chains software was)
compupper (computer upper)
withomepage (without homepage)
welcomputer (welcome computer)
choosome (choose some)
Некоторыми результатами там являются победители.
прототип показывает, что может, вероятно, быть сделан, но аналитика, которой Вы требуете об аллитерации или информации о слоге, требует лучшего источника данных, чем просто слова. Вам была бы нужна информация о произношении. Кроме того, я показал, что Вы, вероятно, хотите, чтобы база данных хороших простых слов выбрала из, а не весь слова, лучше удовлетворила Ваше требование незабываемого пароля.
Генерация единого пароля в первый раз и каждый раз - что-то Вам нужно для сети - возьмет и лучший источник данных и больше изощренности. Используя лучший язык программирования, чем Bash с текстовыми файлами и использованием базы данных мог заставить это работать мгновенно. Используя систему баз данных Вы могли использовать алгоритм SOUNDEX или некоторых такой.
Отличная идея. Удача.
Когда Вы генерируете пароль для пользователя и отправляете его по электронной почте, первая вещь, которую необходимо сделать, когда они сначала входят в систему, если вынуждают их изменить свой пароль. Пароли, созданные системой, не должно быть легко помнить, потому что они должны только быть необходимы однажды.
Наличие, легкое помнить, трудно предположить пароли, является полезным понятием для Ваших пользователей, но не является тем, которое система должна некоторым способом осуществлять. Предположим, что Вы посылаете пароль на счет Gmail своего пользователя, и пользователь не изменяет пароль после входа в систему. Если пароль в учетную запись Gmail поставлен под угрозу, то пароль к Вашей системе поставлен под угрозу.
Настолько генерирующий легкий помнить пароли за Ваших пользователей не полезно, если они должны сразу изменить пароль. И если они не изменяют его сразу, у Вас есть другие проблемы.
FWIW мне вполне нравится смешивать слоги слова для легкого, но чрезвычайно случайного пароля. Возьмите "Бонго", например, в качестве случайного слова. Подкачайте слоги, Вы получаете "Gobong". Подкачайте o's для нулей на вершине (или некоторая другая общая замена), и у Вас есть чрезвычайно случайная последовательность символов с некоторым следом, который помогает Вам помнить это.
Теперь, как Вы выбираете слоги программно - это - целый другой вопрос!
Я несколько раз использовал следующий алгоритм:
true
или false
true
, удалите последнюю букву от [1 111] Пароль false
, ничего не делайте VoilГЎ - теперь у Вас должен быть пароль длины между 5 и 10 символами с алфавитно-цифровыми символами нижнего регистра и верхним регистром. Наличие гласных и согласных сменяется, часто делают их полуудобопроизносимыми и таким образом легче помнить.
Я удивлен, что никто не упомянул алгоритм Multics, описанный в http://www.multicians.org/thvv/gpw.html , который подобен алгоритму FIPS, но на основе trigraphs, а не диграфов. Это производит, производит такой как
ahmouryleg
thasylecta
tronicatic
terstabble
, я портировал код к Python также: http://pastebin.com/f6a10de7b
После многих лет я решил использовать первую букву слов в пароле. Невозможно расколоться, универсальный для длины, и ограничения как "Вы должны иметь цифру", и трудно совершать ошибки.
Это работает путем создания фразы. сумасшедшая забавная яркая тема полезна! "Посторонние объекты Переполнения стека посажены, не применяя ракеты или колеса". Возьмите первую букву, Ваш пароль является "soalwurow"
, можно ввести это быстро и точно , так как Вы не помните побуквенный, Вы просто говорите предложение в голове.
я также как наличие слов чередуюсь от левой и правой стороны клавиатуры, это дает Вам незначительно более быструю скорость печати и более приятный ритм. Заметьте в моем примере, Ваши руки чередуют left-right-left-right.
В первую очередь, удостоверьтесь, что пароль долог. Рассмотрите использование "пароля" вместо единственного "пароля". Повреждение паролей как "Собаки и волки ненавидит друг друга". очень твердо все же, их довольно легко помнить.
Некоторые сайты могут также дать Вам совет, который может быть полезным, как Сильные пароли: Как создать и использовать их (связанный от средство проверки Пароля , который является полезным инструментом самостоятельно).
кроме того, вместо того, чтобы пытаться создать легкий помнить пароль, в некоторых случаях намного лучшая альтернатива должна постараться не помнить пароль вообще при помощи (и обучать Ваших пользователей использовать) хорошая утилита управления паролями (см. , Каков Ваш любимый инструмент устройства хранения данных пароля? ) - при выполнении это, единственная оставленная часть должно создать твердое для взламывания пароля, который легок (немного достаточно долго случайное предложение сделает).
Вы могли использовать Цепи Маркова для генерации слов, который походит на английский язык (или любой другой язык, который Вы хотите), но они не фактические слова.
вопрос легких помнить действительно субъективен, таким образом, я не думаю, что можно записать алгоритм как это, которое будет хорошо для всех.
И почему использование короткие пароли на веб-сайтах/компьютерных приложениях вместо паролей? Их легко помнить, но трудно расколоться.
Я предпочитаю давать пользователям "трудный" пароль, требуя, чтобы они изменили его на первом использовании и предоставлении им руководство о том, как создать хороший, долгий пароль. Я также связал бы это с разумными требованиями сложности пароля (8 + символы, верхнее соединение / соединение нижнего регистра, и пунктуация или цифры). Мое объяснение для этого - то, что люди, намного более вероятно, будут помнить что-то, что они выбирают сами и менее вероятно записать его где-нибудь, если они могут помнить это.
править: После ответа я понял, что это никоим образом не запоминается фонетически. В любом случае оставляя ответ b / c, мне это интересно. / edit
Старый тред, я знаю ... но попробовать стоит.
1) Я бы, наверное, построил самый большой словарь, который вы можете собрать. Разложите их по сегментам по частям речи.
2) Затем постройте грамматику, которая может составлять несколько типов предложений. «Тип» предложения определяется перестановками частей речи.
3) Случайно (или как можно ближе к случайному) выберите тип предложения. Возвращается шаблон с заполнителями для частей речи (nvn будет существительное-глагол-существительное)
3) Выбирать слова случайным образом в каждой части речевого сегмента, чтобы заменить заполнители. Заполните их. (Пример выше может быть чем-то вроде велосипеда на машине. )
4) произвольно просканируйте каждый символ, решая, хотите ли вы заменить его либо похожим по звучанию символом (или набором символов), либо похожим. Это самый сложный этап проблемы.
5) полученный пароль будет примерно таким:kaR @ tebyCICle
6) смейтесь над юмористическими результатами, подобными приведенным выше, которые выглядят как «велосипед для карате»