Как вы генерируете пароли?
Что-то вроде этого?
cat /dev/urandom | strings
Используя менеджер паролей ... проверьте несколько на Хакерские новости





Короткий скрипт на Python для генерации паролей, изначально взятый из кулинарной книги Python.
#!/usr/bin/env python
from random import choice
import getopt
import string
import sys
def GenPasswd():
chars = string.letters + string.digits
for i in range(8):
newpasswd = newpasswd + choice(chars)
return newpasswd
def GenPasswd2(length=8, chars=string.letters + string.digits):
return ''.join([choice(chars) for i in range(length)])
class Options(object):
pass
def main(argv):
(optionList,args) = getopt.getopt(argv[1:],"r:l:",["repeat = ","length = "])
options = Options()
options.repeat = 1
options.length = 8
for (key,value) in optionList:
if key == "-r" or key == "--repeat":
options.repeat = int(value)
elif key == "-l" or key == "--length":
options.length = int(value)
for i in xrange(options.repeat):
print GenPasswd2(options.length)
if __name__ == "__main__":
sys.exit(main(sys.argv))
Алгоритм в пнг довольно крутой. Но в основном я использую случайные символы из списка, который определил сам. В основном это цифры, прописные и строчные буквы и некоторые знаки препинания. Я исключил символы, которые могут быть ошибочно приняты за другие символы, такие как '1', 'l', 'I', 'O', '0' и т. д.
удаление символов из-за этого просто побеждает визуальную часть обфускации пароля.
Я использую KeePass для генерации сложных паролей.
<?php
print md5(rand(0, 99999));
?>
Тем не менее, это делает ваши пароли менее случайными. AFAIK, md5 генерирует шестнадцатеричное значение, верно? Таким образом, вместо 26 + 10 возможных значений на символ у вас есть только 16. На 6 символах это означает, что существует в 130 раз меньше возможных комбинаций для грубой силы;)
На самом деле уникальных паролей здесь всего 100К. Это примерно то же самое, что и трехзначный пароль! (Если известен этот алгоритм генерации)
Должен признаться, я сам много этим пользуюсь. Однако я использую его для темп. пароли, которые пользователь должен изменить при первом входе в систему. Я также делаю второй проход по сгенерированной последовательности md5, чтобы случайным образом использовать заглавные буквы.
На Mac я использую РПГ.
В PHP путем генерации случайной строки символов из таблицы ASCII. См. Генерация (псевдо) случайных буквенно-цифровых строк
Инструмент Keepass с открытым исходным кодом имеет отличные возможности для генерации паролей, включая улучшенную рандомизацию.
Я начинаю с инициалов предложения на иностранном языке, используя некоторые правила использования некоторых из них с заглавной буквы. Затем я вставляю в определенную часть предложения комбинацию цифр и символов, полученную из названия приложения или веб-сайта.
Эта схема генерирует уникальный пароль для каждого приложения, который я могу без проблем повторно выводить в голове каждый раз (то есть без запоминания), и нет никаких шансов, что какая-либо его часть появится в словаре.
Мне не нравятся пароли из случайных символов. Их сложно запомнить.
Обычно мои пароли делятся на уровни в зависимости от того, насколько важна для меня эта информация.
Мои самые безопасные пароли, как правило, используют комбинацию старых паролей, сгенерированных случайным образом BBS, которые я был слишком молод и глуп, чтобы знать, как изменить и запомнить. Добавление нескольких из них вместе с широким использованием клавиши Shift работает хорошо. Если я их не использую, я лучше нахожу парольные фразы. Возможно, это фраза из какой-нибудь книги, которая мне нравится, опять же с смешанным регистром и специальными символами. Часто я использую более одной фразы или несколько слов из одной фразы, соединенных с несколькими из другой.
На сайтах с низким приоритетом мои пароли довольно короткие, как правило, это комбинация нескольких знакомых токенов.
Место, где у меня самая большая проблема, - это работа, где нам нужно менять пароль каждые 30 дней, и мы не можем повторять пароли. Я просто, как и все остальные, придумываю пароль и добавляю в конец постоянно увеличивающийся индекс. Подобные правила паролей абсурдны.
Я использую https://www.grc.com/passwords.htm для генерации длинных строк паролей для таких вещей, как ключи WPA. Вы также можете использовать это (через сканирование экрана) для создания солей для хеширования паролей аутентификации, если вам нужно реализовать какой-то сайт регистрации.
Вам придется закодировать дополнительные правила, чтобы убедиться, что ваш пароль приемлем для системы, для которой вы его пишете. В некоторых системах есть такие политики, как «минимум две цифры и две заглавные буквы» и так далее. По мере того, как вы генерируете свой пароль символ за символом, ведите подсчет цифр / букв / заглавных букв по мере необходимости и оборачивайте генерацию пароля в do .. while, который будет повторять генерацию пароля до тех пор, пока (digitCount> 1 && alphaCount> 4 && upperCount > 1) или что-то еще.
Для веб-сайтов я использую SuperGenPass, который извлекает пароль для конкретного сайта из главного пароля и имени домена с помощью хэш-функции (на основе MD5). Не нужно нигде хранить этот пароль (сам SuperGenPass - это букмарклет, полностью клиентский), просто запомните свой мастер-пароль.
Выберите последовательность из
md5 random_file
Это ужасно небезопасно. В вашем пароле всего 16 возможных символов. При длине 8 символов в области поиска всего 4 x 10 ^ 9 возможных паролей. Вы, вероятно, просто используете их для временных параметров, которые пользователи должны изменить немедленно, но что, если они никогда не войдут в систему?
В некоторых случаях я использую модуль Perl Crypt :: PassGen, который использует анализ цепей Маркова на корпусе слов (например, / usr / share / dict / words в любой разумной системе Unix). Это позволяет ему генерировать пароли, которые оказываются достаточно произносимыми и, следовательно, запоминающимися.
Тем не менее, в $ work мы переходим к аппаратным механизмам токенов запроса / ответа.
Password Monkey, виджет iGoogle!
Недавно я использовал необычный метод генерации паролей. Они не должны были быть суперсильными, а случайные пароли запомнить слишком сложно. В моем приложении была огромная таблица городов Северной Америки. Чтобы сгенерировать пароль, я сгенерировал случайное число, взял случайный город и добавил еще одно случайное число.
бостон9934
Длины чисел были случайными (как если бы они были добавлены, добавлены в начале или и то, и другое), поэтому перебором было не так-то просто.
Я использую безопасный пароль для генерации и хранения всех моих паролей, так что вам не нужно запоминать сверхнадежные пароли (кроме того, который открывает ваш сейф).
Выберите надежный мастер-пароль, как вам нравится, а затем сгенерируйте пароль для каждого сайта с помощью криптохеша (мастер-пароль + имя сайта). Вы не потеряете свой пароль для сайта A, если ваш пароль для сайта B попадет в чужие руки (например, из-за злого администратора, сниффинга wlan или взлома сайта), но вам нужно будет запомнить только один пароль.
Существуют расширения Firefox, которые делают это, например, составитель паролей.
Я думаю, это во многом зависит от того, для чего вы хотите использовать пароль и насколько конфиденциальны данные. Если нам нужно сгенерировать надежный пароль для клиента, мы обычно используем легко запоминающееся предложение, используем первые буквы каждого слова и добавляем число. Что-то вроде «совершенно секретный пароль для использования в stackoverflow» => «tspfuos8».
Однако в большинстве случаев я использую утилиту pwgen в Linux для создания пароля, вы можете указать сложность и длину, так что это довольно гибко.
Надстройка Password Hasher для Firefox отлично подходит для генерации паролей: Пароль Хашер
На сайте также есть онлайн-заменитель аддона: Online Password Hasher
Я генерирую случайные печатные символы ASCII с помощью программы Perl, а затем настраиваю сценарий, если есть дополнительные правила, которые помогут мне сгенерировать более «безопасный» пароль. Я могу сохранить пароль на стикере, а затем уничтожить его через один или два дня; мои пальцы запомнят его, и мой пароль будет совершенно неузнаваемым.
Это мой основной пароль для входа, который я использую каждый день, а на самом деле много раз в день, когда сажусь и разблокирую свой экран. Это позволяет легко запоминать и быстро. Очевидно, что пароли для других ситуаций должны использовать другой механизм.
Что ж, моя техника - использовать первые буквы слов моих любимых песен. Нужен пример: Каждую ночь во сне я вижу тебя, я чувствую тебя ...
Дай мне:
enimdisyify
... и немного вставки чисел, например. i = 1, o = 0 и т. д.
en1md1sy1fy
... заглавные буквы? Всегда придавай значение себе :)
И последний пароль ...
en1Md1sy1fy
Использую модуль Крипта :: GeneratePassword.
Я так понимаю, это ответ на вопрос ориентированного программирования!
Для веб-сайтов это «секретное» слово в сочетании с чем-то запоминающимся для сайта, на котором я регистрируюсь.
Для всего остального я использую случайно сгенерированный пароль.
Стандартная утилита UNIX называется pwgen. Доступен практически в любом дистрибутиве unix.
Джоэл Спольски написал короткую статью: Наконец-то возможно управление паролями
…there's finally a good way to manage all your passwords. This system works no matter how many computers you use regularly; it works with Mac, Windows, and Linux; it's secure; it doesn't expose your passwords to any internet site (whether or not you trust it); it generates highly secure, random passwords for each and every site, it's fairly easy to use once you have it all set up, it maintains an automatic backup of your password file online, and it's free.
Он рекомендует использовать DropBox и PasswordSafe или Пароль Горилла.
Приложение Mac OS X "Keychain Access" дает вам доступ к прекрасному генератору паролей OS X. Нажмите command-N и щелкните значок ключа. Вы можете выбрать стиль пароля (запоминающийся, числовой, буквенно-цифровой, случайный, FIPS-181) и выбрать длину. Он также предупреждает вас о слабых паролях.
Я вручную генерирую довольно трудно запоминающиеся строки символов, чисел, прописных и строчных букв, которые обычно выглядят как гадкий язык.
Пример:
&p0pul4rw3b$ite!
Затем я сохраняю их как черновик электронной почты, к которому я могу получить доступ откуда угодно через веб-почту.
Джефф Этвуд предложил всем нам переключиться на пароли, а не на пароли:
makepasswd генерирует истинные случайные пароли, используя функцию / dev / random в Linux, с упором на безопасность, а не на удобочитаемость. Он также может шифровать пароли в виде открытого текста, заданные в командной строке.
Наиболее заметные варианты:
--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.
пароли:
$ gpg --gen-random 1 20 | gpg --enarmor | sed -n 5p
парольные фразы:
http://en.wikipedia.org/wiki/Diceware
gpg -a --gen-random 1 20 достаточно.
Если вы хотите сгенерировать пароли, которые легче запомнить пользователям, обратите внимание на цепи Маркова. http://en.wikipedia.org/wiki/Markov_chain
Этот алгоритм может создавать бессмысленные слова, которые можно произносить, поэтому их легче запоминать и передавать по телефону. Немного гугл-фу может дать вам несколько примеров кода практически на любом языке.
Вам также понадобится хороший словарь, чтобы отфильтровать любые пароли, которые выглядят как настоящие слова.
Конечно, это не будут высоконадежные пароли, но они действительно хороши, когда вам нужен базовый контроль доступа к чему-либо, и вы не хотите обременять своих пользователей сложными для запоминания паролями.
Я обычно использую безопасный пароль для генерации случайных паролей. Для паролей, которые я действительно хочу иметь возможность запоминать без защиты пароля, я обычно беру слово и число и чередую символы
Так что вы поверите на слово.
бейсбол
и ряд
24681357
и вы получите пароль
b2a4s6e8b1a3l5l7
Это выглядит довольно случайным, и, вероятно, его будет сложно перебрать. Кроме того, в большинстве случаев довольно легко печатать. Вы просто набираете слово, затем перемещаете курсор обратно ко второму символу и вводите число, а между каждым символом нажимайте правую клавишу курсора. Это не только упрощает ввод текста, но и затрудняет запись того, что вы на самом деле набираете, для клавиатурных шпионов.
Чаще всего я набираю dd if=/dev/urandom bs=6 count=1 | mimencode и сохраняю результат в надежном пароле.
Этот однострочник Perl иногда помогает (rand небезопасен, но часто не имеет значения):
$ perl -E"say map { chr(33 + rand(126-33)) } 1..31
Пример вывода:
ET<2:k|D:!z)nBPMv+yitM8x`r.(WwO
import random
length = 12
charset = "abcdefghijklmnopqrstuvwxyz0123456789"
password = ""
for i in range(0, length):
token += random.choice(charset)
print password
print "".join(map(random.choice, [charset]*length))
J.F. Вам не кажется, что это слишком непифонично?
Это ясно и лаконично. Возможно, вы не знакомы с функцией map, но она довольно распространена. Попробуйте $ ack --python '\W\s*map\s*\(' в каталоге распространения Python.
Для довольно важных вещей я люблю использовать комбинации букв и цифр, например «xme7UpOK». Их можно сгенерировать с помощью этого однострочника:
perl -le 'print map { (a..z,A..Z,0..9)[rand 62] } 1..8'
Для менее важных вещей мне нравится иметь пароли, которые легко набирать, произносить и запоминать, что-то вроде «лоскубов» или «гобдафол». Их можно сгенерировать так:
perl -le '@l=("aeiou", "bdfgjklmnprstv");
print map {(split "",$l[$_])[rand length $l[$_]]} split "", "10110101"'
где «10110101» - это образец для гласных и согласных.
Прочитав и попробовав некоторые из замечательных ответов здесь, я все еще искал метод генерации, который можно было бы легко настроить, и использовал очень распространенные утилиты и ресурсы Linux.
Мне очень понравился ответ gpg --gen-random, но он казался немного неуклюжим?
Я нашел этот камень после дальнейших поисков
echo $(</dev/urandom tr -dc A-Za-z0-9 | head -c8)
$ echo `cat /etc/dictionaries-common/words | sort --random-sort | head -n 4`
consented upsurges whitewall balderdash
Довольно неэффективно, но работает.
Используйте это и бухает :)
cat /dev/urandom | tr -dc 'a-zA-Z0-9-!@#$%^&*()_+~' | fold -w 10 | head -n 1
Измените счетчик голов, чтобы сгенерировать количество паролей.
Другой способ написать это: tr -dc '[:alnum:][:punct:]' < /dev/urandom | head -c 32
Почему fold | head вместо head -c?
@CiroSantilli 巴拿馬 文件 六四 事件 法轮功 Предположительно потому, что head -c не печатает символ новой строки в конце вывода.
Небольшое изменение вашего предложения:
head -c 32 /dev/random | base64
При желании вы можете обрезать завершающий = и использовать echo для получения новой строки:
echo $(head -c 32 /dev/random | base64 | head -c 32)
что дает вам более предсказуемый пароль выходной длины, при этом гарантируя только печатаемые символы.
Я использую пару сценариев Perl, которые написал сам, доступно на Github.
gen-password генерирует пароли, подобные 7bp4ssi02d4i, с параметрами для указания длины и набора символов. (И насколько известно моему банку, это девичья фамилия моей матери.)
gen-passphrase генерирует случайные парольные фразы, такие как porcine volume smiled insert, используя слова из словаря, вдохновленные этот мультфильм XKCD.
Оба получают случайные данные от /dev/urandom по умолчанию, но можно указать вместо этого использовать /dev/random.
Я храню свои пароли в зашифрованной базе данных, и я никогда не использую один и тот же пароль более чем на одном сайте. На самом деле я помню очень мало из них.
поместите эту команду в файл bash в папке и добавьте эту папку в путь