Как создать сильные пароли в Linux?

Для GUI я предлагаю easytag, и Вы можете поиск больше альтернатив здесь. Поскольку командная строка проверяет id3v2, но альтернативы бесконечны.

24
07.02.2011, 06:29
12 ответов

pwgen является одной из многих программ для генерации паролей

23
27.01.2020, 19:40

Лично, я предпочитаю не использовать генератор пароля, поскольку сгенерированный пароль очень трудно помнить, но одно портативное решение состоит в том, чтобы использовать/dev/urandom

Создание случайных паролей, который не содержит специальных символов, является 10 символами долго:

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10` 
dyxJRKldvp

Это работает путем захвата байтов от/dev/urandom, удаления тех, которые не соответствуют шаблону, указанному в tr команда и ограничение его к 10 символам с head.

Создание случайных паролей, который содержит специальные символы, является 10 символами долго:

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 10 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | head -n 1
MSF4wj@vP0

Это использует немного отличающуюся технику после tr удаляет нежелательные байты, поскольку идея состоит в том, чтобы вынудить это иметь по крайней мере один специальный символ. Это работает при помощи fold управляйте для обертывания строки в группы 10, затем с помощью grep выбирать только строки, которые содержат специальный символ. head затем выбирает первый пароль, который отвечает требованиям.

16
27.01.2020, 19:40
  • 1
    Можно также использовать [:print:] для tr (tr -dc '[:print:]'), если Вы немного параноики. Проблемой затем будут символы, доступные на Вашей клавиатуре... –  lgeorget 05.05.2013, 18:32

Я записал этот небольшой сценарий несколько лет назад и использовал его с тех пор. В любом случае это - интересное злоупотребление printf и использует прекрасную функцию Bash, который я, к сожалению, редко вижу в сценариях: typeset.

#!/usr/bin/env bash
# Released into public domain
# Aaron Bockover, 2005
# http://abock.org

typeset -i length; length=$1
typeset -i rounds; rounds=$2
[ $rounds -lt 1 ] && rounds=1
[ $length -lt 1 ] && {
    echo "Usage: $0 <length> [<rounds>]" 2>/dev/null; exit 1;
}
for ((i=0; i < $rounds; i++)); do
    for ((j=0; j < $length; j++)); do
        set=$(($RANDOM % 20))
        if   [ $set -le 6 ];  then o=65; l=26; # 35% uppercase
        elif [ $set -le 13 ]; then o=97; l=26; # 35% lowercase
        elif [ $set -le 17 ]; then o=48; l=10; # 20% numeric
        elif [ $set -le 18 ]; then o=58; l=7;  # 10% symbolic
        elif [ $set -le 19 ]; then o=33; l=15; fi
        ord=$(($o + $RANDOM % $l))
        printf \\$(($ord / 64 * 100 + $ord % 64 / 8 * 10 + $ord % 8))
    done
    echo
done
11
27.01.2020, 19:40

Я также добавил бы KeePassX, который дает Вам опцию использования системной энтропии для генерации сильных паролей с несколькими хорошими функциями - все использование GUI. Это также дает Вам опцию управления Вашими паролями и сохранения их к зашифрованному файлу.

Это - то, как интерфейс генератора пароля KPX похож:

enter image description here

4
27.01.2020, 19:40

apg не плохой выбор, если Вы хотите пароль, который можно легко помнить.

; apg -m 16 -a 0 -t
ByajNudgolIston9 (Byaj-Nud-gol-Ist-on-NINE)
Af}ockhuecUjrak8 (Af-RIGHT_BRACE-ock-huec-Uj-rak-EIGHT)
IakijKadmomIvgig (Iak-ij-Kad-mom-Iv-gig)
NutIlOsyahodBeef (Nut-Il-Os-ya-hod-Beef)
anMechOybekazell (an-Mech-Oyb-ek-az-ell)
VumushCummAd{fra (Vum-ush-Cumm-Ad-LEFT_BRACE-fra)

Обратите внимание, что согласно этому, Ваш пароль должен быть по крайней мере 12 символами долго.

3
27.01.2020, 19:40

Я использую не случайный, но варьируется достаточно во всех целях нападения... основной пароль, и в последний раз передайте для генерации других паролей. Вот то, как я генерирую основной пароль.

echo -n "some seed" |  openssl dgst -binary -sha1 | base64 | sed -e 's/.\{4\}/& /g'

и вывод

H1sI Wpbj JE2P CdVJ A1qb 9B/e u7M= 

теперь просто выберите несколько разделов и сделайте пароль, перестройте их, пропустите некоторых, добавьте символ или 2 для создания его столь же хорошим как случайным. Пока можно помнить семя, можно повторно создать это и восстановить пароль (пока Вы не делаете слишком много модификаций),

2
27.01.2020, 19:40

pwgen замечательный небольшой cli инструмент который, позвольте нам, Вы указываете много параметров для установки сложности, количества классов символов паролей для генерации, длина, и т.д.

1
27.01.2020, 19:40

Если Вы - пользователь GNOME, и также необходимо сохранить пароли для различных учетных записей, можно попробовать менеджер паролей Открытия. Это имеет основную функцию генератора пароля, в которой Вы только устанавливаете длину пароля и выбираете, если включать знаки пунктуации помимо букв и цифр.

0
27.01.2020, 19:40

Исправьте меня, если я неправ, но: Насколько я понял это, нет никакого способа, которым компьютер может придумать абсолютно случайную строку. Таким образом, я придумал следующую идею [и надежда, это не абсолютно глупо]:

Если Вы бросаете 26-стороннюю игру в кости, шанс бросить, сказать 26, 1:26. Другими словами: шанс бросить 26 составляет приблизительно 0,04%. Далее, игра в кости не имеет никакой памяти и никаких ошибок. Я придумал следующую идею:

  • получите 26 примкнутых игр в кости, где каждая сторона соответствует букве алфавита
  • получите десять примкнутых игр в кости, где каждая сторона соответствует числу между 0 и 9
  • бросьте монетку
  • главные средства: бросьте игру в кости буквы
  • средства хвостов: игра в кости числа броска

Бумажные Модели для распечатывания:

Примечание: Я не Математика Pro, и я придумал эту идею после чтения статьи в 2 600 журналах, которые описали это. Я просто добавил некоторые свои собственные идеи о фундаментальном понятии.

Также: Интересно, не является ли это просто идеальным примером для 'записи Ваш первый взломщик пароля грубой силы'. Но Ваш вопрос привел мне идеальную причину ясно показать эту идею для того, чтобы быть обсужденным.

0
27.01.2020, 19:40
  • 1
    На самом деле существуют некоторые способы генерировать абсолютно случайные биты. Например, с помощью электромагнитного шума от жесткого диска или изменения уровней IO... То, на что надеются с генераторами, названными 'псевдослучайные генераторы', то, что последовательность, которую они производят, не может отличить от истинной случайной последовательности никакой алгоритм, работающий в полиномиальное время. –  lgeorget 05.05.2013, 18:38
  • 2
    Можно интересоваться системой Diceware. Это следует за подобной идеей, но использует только шестистороннюю игру в кости. world.std.com/~reinhold/diceware.html –  Jander 29.01.2015, 20:00

Вот одноквартирный скрипт для генерации XKCD-стиль passphases. / usr / Share / Dict / Words Разве не отличный словарь для этого, поскольку большинство слов длинные, но он легко доступен. Для приятных пасфоров вы можете использовать словарь коротких слов, таких как / ключей одноразовый список слов пароля .

dict="/usr/share/dict/words"
max="`wc -l <"$dict"`" \
    perl -e '$count=4;
        $/=\4; while (<>) {
            print unpack('L') % $ENV{max} + 1, qq(\n); last unless --$count
        }' /dev/urandom | 
    while read n ; do 
        tail -n "+$n" "$dict" | head -1
    done
1
27.01.2020, 19:40

У меня есть два псевдонима, добавленные в файл .zshrc.local для создания надежных паролей.

Первый:

alias pw.graph="cat /dev/urandom | tr -dc '[:graph:]' | fold -w 1000 | perl -pe 's/(.)(?=.*?\1)//g' | head -n 5"

Вывод pw.graph - пять строк всех символов, которые можно набрать на клавиатуре, за исключением пробела:

/d=|&mRq!g$QaNZ'L;CfEli,D3\)*h-jkerzv?{y"_Ic(0BtxJwF59:@G}KV1X2o>S~[#]s+W%A.<6bpTO^uP7U4HMYn`8
RIdW87{a4O3][?&rTn=m/:Y`_u*hqy2c%s@!ZPM$5to1f-.U9ClK,)'jDi0"pw>EzN^|gX~BSAJk\VFG(H<bx}+Q6#vL;e
s^H@yEo/X$|d?_jw7-n'l>m"Cb\W5.tTe0APB1D!#69[p+(8x}F&~RM`q3Q%vhfOiUZz]ucJk:)*agGV;=NY4{,K2SLrI<
$/t|!s}og5u:X~hcJUyYHf>;l<zDedL`.T*K8]CBSW[(xw+Mm^E3r16b-97%'@jVR{ZG#0p4AP=,I?\n&"a)vqNkQ2iO_F
,7n|^Y\%MpeBqvhI3mE<9zPS/~+sU`4ZoCWl&uxd'ft"kjcOy0X!{a-T_6RKiVg5Hb21D)w>@*N8;A[(rLG=$Q:.#]FJ?}

Второй:

alias pw.alnum="cat /dev/urandom | tr -dc '[:alnum:]' | fold -w 1000 | perl -pe 's/(.)(?=.*?\1)//g' | head -n 5"

Вывод pw.alnum - все печатаемые буквы и цифры как в верхнем, так и в нижнем регистре:

E6wgCfVBbXjyzYQ8USKl79LqPih0e5mvGrNHd3osaW2OxkJ1RM4nFTtcuZIpDA
GTvQON1dsZSpJmegBMK6bqnEciU7k0AoV2H4Wh53zr9YRfLlDxywXItu8CjPFa
6u1Db9MfyBApZdU7gqoV2PGwH5LcxWi3JNj8nkQCIThezSlYEXsOtrmF04KvaR
VFrsGwI9yAmabEnlRTKgZO23vUq4f6LHkzQP7tMjNW8ph1exuDoBCXSd50JciY
G3r6Em5tlfjQARJx9gWHes7bCVwkzcP48KaSIXyUFBMLqT0op1uDNdih2nYZOv

Обычно я использую pw.graph и копирую случайную часть строки. Некоторые пароли не допускают символов, поэтому я использую для этого часть pw.alnum.

0
27.01.2020, 19:40

Я использую это, сохраненное в виде файла.html:

<script>
var keylist="abcdefghijklmnopqrstuvwxyzABCEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*_"
var temp=''

function generatepass(plength){
temp=''
for (i=0;i<plength;i++)
temp+=keylist.charAt(Math.floor(Math.random()*keylist.length))
return temp
}

function populateform(enterlength){
document.pgenerate.output.value=generatepass(enterlength)
}
</script>

<form name="pgenerate">
<input type="text" size=32 name="output">
<input type="button" value="Generate Password" onClick="populateform(this.form.thelength.value)"><br />
<b>Password Length:</b> <input type="text" name="thelength" size=3 value="32">
</form>
0
27.01.2020, 19:40

Теги

Похожие вопросы