Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix (https://forum.antichat.xyz/forumdisplay.php?f=43)
-   -   Генерация паролей (https://forum.antichat.xyz/showthread.php?t=52154)

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

Цитата:

Сообщение от POS_troi
а Random по клавишам уже не катит?

ну-ну, давай 100 паролей по клавишам набивай=)

L0rd_Ha0S 28.10.2007 18:55

Цитата:

Сообщение от ShadOS
А вот способ ещё короче:
Код:

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

А вот на перл:
PHP код:

#!/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 и т.д.


Время: 03:06