В контексте использования в языках регулярные выражения действуют на строки, а не на строки. Таким образом, вы должны нормально использовать регулярное выражение, считая, что входная строка имеет несколько строк.
В этом случае заданное регулярное выражение будет соответствовать всей строке, так как «& lt; FooBar & gt;» настоящее. В зависимости от специфики реализации регулярного выражения значение $ 1 (полученное из «(. *)») Будет либо «fghij», либо «abcde\nfghij». Как говорили другие, некоторые реализации позволяют вам контролировать, является ли "." будет соответствовать новой строке, предоставив вам выбор.
Использование регулярных выражений на основе строк обычно используется для командной строки, например egrep.
Можно интересоваться Yubikey.
Это - маленький аппаратный ключ usb, который действует как клавиатура usb (т.е. не нуждается ни в каких специальных драйверах или клиентском программном обеспечении), и разработан точно для этого вида аутентификации.
Это собирается потребовать чего-то, что имеет права получить доступ к аппаратному ключу. Существует также проблема взламывания его - связь не будет способной быть скрытой так, необходимо удостовериться, что это не имеет значения. Это означает, что аппаратный ключ оказывается перед необходимостью реализовывать свой собственный crpyto. Вы будете также нуждаться в поддержке для любых систем, которые Вы собираетесь поддерживать.
я вижу это получение очень сложного очень быстро.
Я также использовал Yubikey с хорошими результатами. Другое аналогичное решение Swekey - Вы могли бы хотеть проверить это также.
Вы могли использовать маркеры RSA SecurID , которые являются небольшими дисплеями связки ключей, которые изменяют число, отображаемое всех минуту. В дополнение к требованию имени пользователя и пароля, можно также потребовать, чтобы они ввели номер, который они видят на их маркере, чтобы проверить, что у них есть устройство с ними. Существуют различные аппаратные аппаратные ключи с некоторыми даже требование, чтобы PIN был введен для наблюдения изменяющегося числа. Дополнительной сложности на стороне сервера, но клиента не испытывает слишком много затруднений.
У меня были хорошие результаты в реализации аутентификации и входа на сайт с помощью донглов Dinkey и системы DinkeyWeb.
Пользователь подключает USB-ключ безопасности к своей машине, посещает вашу "защищенную" веб-страницу, и она проверяет наличие ключа перед загрузкой страницы. Работает без специальных разрешений или привилегий.
Надеюсь, это поможет.