PDA

Просмотр полной версии : Генерация паролей


ShadOS
27.10.2007, 17:35
Может, кому-нибудь пригодится. Сгенерировать набор (псевдо) случайных паролей в *nix можно, например, так:
$ dd if=/dev/urandom bs=1 count=1024 2>/dev/null | base64 -w30 | sed -n 1,45p | tr -d '+/=' | cut -c1-10
Приведенная последовательность команд генерирует 45 случайных 10-символьных паролей, состоящих из больших латинских букв, маленьких латинских букв и цифр.
И Аналогично можно вот так:
dd if=/dev/urandom bs=1 count=64 2>/dev/null | uuencode -m - | head -n2 | tail -n1 | cut -c1-10
А вот способ ещё короче:
cat /dev/urandom | tr -cd A-HJ-NP-Za-km-z1-9 | head -c 12
Вот так можно обойтись без использования спецсредств типа pwgen.

POS_troi
27.10.2007, 21:00
а Random по клавишам уже не катит?

Dude03
28.10.2007, 12:34
а Random по клавишам уже не катит?
ну-ну, давай 100 паролей по клавишам набивай=)

L0rd_Ha0S
28.10.2007, 18:55
А вот способ ещё короче:
cat /dev/urandom | tr -cd A-HJ-NP-Za-km-z1-9 | head -c 12

А зачем ты задал такие промежутки A-HJ-NP-Za-km-z1-9, можно ведь просто задать a-zA-Z0-9:
echo `cat /dev/urandom | tr -cd a-zA-Z0-9 | head -c 12`
Результат тот же. Во всяком случае я разницы не заметил.

nikto
15.03.2008, 04:56
А вот на перл:

#!/usr/bin/perl

$m = 16;
$x = 8;
$y = 92;

my $pass = "";
$n = 1;

@mass = ( "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", # 10
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", # 20
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", # 30
"u", "v", "w", "x", "y", "z", # 36
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", # 46
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", # 56
"U", "V", "W", "X", "Y", "Z", # 62
"`", "-", "=", "\\", ";", "'", ",", ".", "/", "~", # 72
"!", "@", "#", "\$", "%", "^", "&", "*", "(", ")", # 82
"_", "+", "|", "{", "}", ":", "\"", "<", ">", "?", # 92
);

while ( $n <= $m ) {
$k = 0;
$pass = "";

while ( $k < $x ) {
srand;
$b = int(rand($y));
$pass = "$pass".$mass[$b];
$k++;
}

print "$n\t\t$pass\n";
$n++;
}

D0zz
15.03.2008, 20:56
есть утилита pwgen, делает всё то что тут написали только во много раз лучше :)

Deem3n®
15.03.2008, 22:00
пользуюсь apg

I0gen
16.03.2008, 00:39
вот от меня небольшой скрипт
#!/usr/bin/perl
print "Password length:";
chomp($length=<stdin>);
$length=~s/\D*//g;
$length||='8';
srand();
@letters=('a'..'z','A'..'Z',0..9,'#','*','_','-','+','=');
for (1..$length){($pass.=$letters[rand(@letters)])};
print "\033[1;31m$pass\033[0;39m\n";

EST a1ien
16.03.2008, 00:49
А зачем ты задал такие промежутки A-HJ-NP-Za-km-z1-9, можно ведь просто задать a-zA-Z0-9:
Думаю изза буквы O и цифры 0 и еше из-за l

ShadOS
16.03.2008, 16:26
А затем чтобы вы, уважаемые, пароли не путали когда у вас 1 = I а 0 = O и т.д.