Страница 1 из 1

Генерация пин кодов

Добавлено: 2010-07-16 16:20:41
mlevel
Нужно сгенерировать уникальние пин коди, использую apg:

Код: Выделить всё

/usr/local/bin/apg -a1 -MN -m5 -x5 -n1
Но иногда первым символом(цифрой) генерируется 0, как можно отфильтровать такие пин коди?

Re: Генерация пин кодов

Добавлено: 2010-07-16 17:51:46
gloom

Код: Выделить всё

grep -vE "^0"

Re: Генерация пин кодов

Добавлено: 2010-07-17 13:15:41
mlevel
Но ето в Perl скрипте.

Re: Генерация пин кодов

Добавлено: 2010-07-17 13:47:05
rmn
mlevel писал(а):Но ето в Perl скрипте.
а перл-скрипт такое не прожует?..

Код: Выделить всё

/usr/local/bin/apg -a1 -MN -m5 -x5 -n1 | grep -v ^0

Re: Генерация пин кодов

Добавлено: 2010-07-17 16:17:18
mlevel
Прожует, но если первая цифра 0, то:

Код: Выделить всё

$code = system(/usr/local/bin/apg -a1 -MN -m5 -x5 -n1 | grep -v ^0);
выведет пустую строку....

Re: Генерация пин кодов

Добавлено: 2010-07-17 17:47:34
gloom

Код: Выделить всё

$code = system(/usr/local/bin/apg -a1 -MN -m5 -x5 -n1 | grep -vE "^0");
ось какая?
grep в бсд системах свой и он немного отличается от gnu grep который используется в лине

Re: Генерация пин кодов

Добавлено: 2010-07-17 19:06:23
mlevel
FreeBSD. Но я не о том. Создавая нового пользователя, эму генерится ОДИН пин код этим скриптом, и если как раз они начинаеться с нуля,то выходит пустая строка, как при пустой строки опять сгенерить пин код? Думал сам apg поддерживает паттерны...

Re: Генерация пин кодов

Добавлено: 2010-07-18 6:45:15
gloom
сделайте проверку переменной и повторный вызов

Re: Генерация пин кодов

Добавлено: 2010-07-18 15:00:57
mlevel
Ломаю голову... Цикл надо.

Re: Генерация пин кодов

Добавлено: 2010-07-19 5:25:13
Burner
да вообще 0 исключите

Re: Генерация пин кодов

Добавлено: 2010-07-19 7:35:55
FiL
mlevel писал(а):FreeBSD. Но я не о том. Создавая нового пользователя, эму генерится ОДИН пин код этим скриптом, и если как раз они начинаеться с нуля,то выходит пустая строка, как при пустой строки опять сгенерить пин код? Думал сам apg поддерживает паттерны...
генери 20 пинов, исключай те, что начинаются с нуля и бери первый. Вероятность, что все 20 будут с нуля начинаться мала. :)

Re: Генерация пин кодов

Добавлено: 2010-07-19 11:16:48
mlevel
Хорошая идея.. :smile:

Re: Генерация пин кодов

Добавлено: 2010-07-19 18:18:48
thefree
ужас, делайте через цыкал, не слушайте глупостей.

Re: Генерация пин кодов

Добавлено: 2010-07-26 11:46:47
schizoid
или проверку переменной, если пустая - сгенерить снова...

Re: Генерация пин кодов

Добавлено: 2010-07-26 12:15:58
Burner
schizoid писал(а):или проверку переменной, если пустая - сгенерить снова...
а это не цикл?

Re: Генерация пин кодов

Добавлено: 2010-07-26 17:45:52
mlevel

Код: Выделить всё

#!/usr/bin/perl

use strict;

my ($code, $new);

for (my $i = 1; $i <= 10; $i++) {
    $code = `/usr/local/bin/apg -a1 -MN -m5 -x5 -n1`;
    if(substr($code,0,1) ne 0) {
        $new = $code;
        last;
    }
}
print $new;