یکی از ویژگی های عالی لینوکس اینه که میتونید با صدها روش یک کار رو انجام بدید، حتی چیزی به سادگی تولید رمز عبور تصادفی که میتونه با ده ها روش انجام بشه. چند روش از اونا رو خواهیم دید:
همه ی این کد ها از سایت Command-Line Fu گرفته شده اند و همشون رو روی کامپیوتر های لینوکسی تست شده است. احتمالا همه این دستور ها روی ویندوز در صورتی که Cygwin رو نصب کرده باشید جواب میده اما من همه رو تست نکردم.
ساختن رمز عبور تصادفی در لینوکس
برای هر کدام از این دستور ها میتونید رمز عبور تصادفی با طول بیشتر تولید کنید یا اگه نمیخواید رمز تولید شده اینقدر بلند باشه، از اول عبارت تولید شده ،به تعداد طول دلخواه جدا کنید.خوشبختانه با وجود نرم افزارهایی مثل LastPass اصلا نیاز نیست که این رمز های پیچیده رو حفظ کنید.
1- این روش از متد SHA برای هش کردن تاریخ از طریق base64 استفاده میکنه و 32 کاراکتر اول رو به خروجی میده:
date +%s | sha256sum | base64 | head -c 32 ; echo
2- این روش از ویژگی موجود در devurandom لینوکس استفاده میکنه و کاراکتر هایی که معمولا در رمز عبور ها استفاده میکنه ایجاد می کنه و 32 کاراکتر اول رو به خروجی میده:
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;
3- این یکی از تابع تصادفی openssl استفاده میکنه که ممکنه رو سیستمتون نصب نباشه:
openssl rand -base64 32
4- اینم یه دستور urandom دیگه که در جهت عکس کار میکنه و خیلی قدرتمنده:
tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
5- اینم یکی دیگه:
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
6- این روش ساده شده روش urandom هستش:
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6
7- این یکی از دستور بسیار مفید dd استفاده می کنه:
dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
8- میتونید حتی پسوردهای چپ دستی تولید کنید که بتونید راحت با یک دست اونا رو وارد کنید:
</dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo ""
9- اگه نیاز دارید که مکرر رمز عبور تصادفی بسازید، بهتره که این دستور ها رو تو یه تابع بگزارید. در این صورت یک بار که این دستور رو اجرا کردید، میتونید هروقت خواستید از تابع randpw استفاده کنید. احتمالا نیاز دارید این رو تو یه فایل ~/.bashrc بگزارید:
randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}
در ضمن شما میتونید برای هرکدوم از روش های بالا این کار رو انجام بدین ، فقط کافیه که اونها رو داخل {} بزارید.
10- آخرین و آسان ترین دستور که روی همه لینوکس ها، ویندوز هایی که روی اونها Cygwin نصب هست و احتمالا MacOSX جواب میده. ممکنه فکر کنید که به خوبی قبلی ها نیست اما واقعیت اینه به اندازه کافی تصادفی هست که هرجا خواستید استفاده کنید:
date | md5sum
نویسنده: مهران بهراد