Для GUI я предлагаю easytag, и Вы можете поиск больше альтернатив здесь. Поскольку командная строка проверяет id3v2
, но альтернативы бесконечны.
Лично, я предпочитаю не использовать генератор пароля, поскольку сгенерированный пароль очень трудно помнить, но одно портативное решение состоит в том, чтобы использовать/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
затем выбирает первый пароль, который отвечает требованиям.
[: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
Я также добавил бы KeePassX, который дает Вам опцию использования системной энтропии для генерации сильных паролей с несколькими хорошими функциями - все использование GUI. Это также дает Вам опцию управления Вашими паролями и сохранения их к зашифрованному файлу.
Это - то, как интерфейс генератора пароля KPX похож:
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 символами долго.
Я использую не случайный, но варьируется достаточно во всех целях нападения... основной пароль, и в последний раз передайте для генерации других паролей. Вот то, как я генерирую основной пароль.
echo -n "some seed" | openssl dgst -binary -sha1 | base64 | sed -e 's/.\{4\}/& /g'
и вывод
H1sI Wpbj JE2P CdVJ A1qb 9B/e u7M=
теперь просто выберите несколько разделов и сделайте пароль, перестройте их, пропустите некоторых, добавьте символ или 2 для создания его столь же хорошим как случайным. Пока можно помнить семя, можно повторно создать это и восстановить пароль (пока Вы не делаете слишком много модификаций),
pwgen
замечательный небольшой cli инструмент который, позвольте нам, Вы указываете много параметров для установки сложности, количества классов символов паролей для генерации, длина, и т.д.
Если Вы - пользователь GNOME, и также необходимо сохранить пароли для различных учетных записей, можно попробовать менеджер паролей Открытия. Это имеет основную функцию генератора пароля, в которой Вы только устанавливаете длину пароля и выбираете, если включать знаки пунктуации помимо букв и цифр.
Исправьте меня, если я неправ, но: Насколько я понял это, нет никакого способа, которым компьютер может придумать абсолютно случайную строку. Таким образом, я придумал следующую идею [и надежда, это не абсолютно глупо]:
Если Вы бросаете 26-стороннюю игру в кости, шанс бросить, сказать 26, 1:26. Другими словами: шанс бросить 26 составляет приблизительно 0,04%. Далее, игра в кости не имеет никакой памяти и никаких ошибок. Я придумал следующую идею:
Бумажные Модели для распечатывания:
Примечание: Я не Математика Pro, и я придумал эту идею после чтения статьи в 2 600 журналах, которые описали это. Я просто добавил некоторые свои собственные идеи о фундаментальном понятии.
Также: Интересно, не является ли это просто идеальным примером для 'записи Ваш первый взломщик пароля грубой силы'. Но Ваш вопрос привел мне идеальную причину ясно показать эту идею для того, чтобы быть обсужденным.
Вот одноквартирный скрипт для генерации 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
У меня есть два псевдонима, добавленные в файл .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.
Я использую это, сохраненное в виде файла.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>