/dev/random

Имах една доста интересна закачка закачка – трябваше да създам огромен брой случайно генерирани пароли като имах изискване да са с определена дължина да съдържат големи малки букви и цифри, нормални неща. Звучи лесно нали и в общи линии е. Използвах /dev/urandom за оснонвата генерация и след това с един кратък конвейер филтрирах до желания брой знаци и видове знаци които трябва да се използват. Стига съм увъртал в основната скрипта е конвейера :

cat /dev/urandom | tr -dc '[:alnum:]' | fold -w 20| head -n 1

Така нека да разгледаме малко по подробно какво се случва тука. Взимаме изхода на cat /dev/urandom. След това го филтрираме да се показват само малки, големи букви и цифри. След това с fold ограничаваме дължината на низовете до желания от нас брой. Накрая лимитираме да се показва само 1 ред от целия изход. В общи линии лесно като 1-2-3. Ако искате да повишите сложността на паролата и със специалените символи в регуляярни израз на tr може да се използва :graph: или :print: вместо :alnum:, които включват всички символи без или със space.

cat /dev/urandom | tr -dc '[:graph:]' | fold -w 20 | head -n 1
Enhanced by Zemanta