নিতান্ত অনিয়মিত, আমাকে নতুন পাসওয়ার্ড তৈরি করতে হয়, যেসব আরও সিকিউর হতে হবে। নতুন লগইন তৈরি করার সময় আমার মস্তিষ্ক প্রায়শই খালি মনে হয়, এবং এই ছোট বাশ স্ক্রিপ্ট সেই শূন্যতা পূরণ করে। পূর্ণ স্বীকারোক্তি: এই স্ক্রিপ্টের অধিকাংশ কোড কোথাও পোস্ট করা পেয়েছিলাম এবং আমি একটু মডিফাই করলাম।
#!/usr/bin/env sh echo 'Generating 12-character passwords' for ((n=0;n<12;n++)) do dd if=/dev/urandom count=1 2> /dev/null | uuencode -m - | sed -ne 2p | cut -c-12 done
আমি না জানি এই কীভাবে কাজ করে তার সব ডিটেইল, কিন্তু আমি কিছু রিসার্চ এবং এক্সপেরিমেন্ট করেছি। স্ক্রিপ্টের "মাংস" হলো do dd দিয়ে শুরু হওয়া লাইন। আপনি dd-কে একটি ডিস্ক অন্য ডিস্কে কপি করতে ব্যবহার করা দেখতে পারেন, কিন্তু এই কেসে, এটি ব্যবহার করা হয়েছে এক ব্লক র্যান্ডম ক্যারেক্টার জেনারেট করতে dev/urandom দিয়ে। dd-এর ফিডব্যাক মেসেজগুলো স্ট্রিপ আউট করা হয়েছে, এবং তারপর ক্যারেক্টারগুলো পাস করা হয়েছে uuencode-এ, যার কাজ হলো ক্যারেক্টারগুলো ট্রান্সফর্ম করা যাতে সব প্রিন্টেবল হয় (অর্থাৎ, কোনো কন্ট্রোল ক্যারেক্টার নেই)।
uuencode কমান্ড sharutils প্যাকেজ ইনস্টল করে পাওয়া যায়।
sed-এর কাজ মনে হয় কিছু আরও ট্রান্সফরমেশন যাতে লেটারগুলো মিক্সড আপার ও লোয়ার কেস হয়। শেষে, cut ১২ ক্যারেক্টার স্লাইস অফ করে ১২-ক্যারেক্টার পাসওয়ার্ড দিয়ে শেষ করে। for লুপ ১২ বার চলে, তাই আপনি ১২টি পাসওয়ার্ড পাবেন।
Generating 12-character passwords 8WMKHeXeYsND X+V3jWOuBWwp fSk6inI+LfYP hIPndcBOSh7m bb/w9mx8OlHv hdIOibUaMt3Y wl//CobIG5bR dih0qQQMJiXw BIN2QfNA4jCe DF0c8Auz1qL4 RM8MMq/D8C8H rZIG5hbghcMy
এই উদাহরণ আউটপুট একটি খুব ভালো জাম্বল ক্যারেক্টার দেখাচ্ছে। একটি কথা লক্ষ্য করুন যে একমাত্র নন-আলফানিউমেরিক ক্যারেক্টারগুলো হলো / এবং +।
আমি যখন একটি নতুন পাসওয়ার্ড দরকার, এই আউটপুট থেকে যেটি "আপিল" করে সেটি খুঁজে বের করি। যদি এটি একটি পাসওয়ার্ড হয় যা আমি ঘন ঘন ব্যবহার করব, আমি চাই এটি এমন কিছু হোক যা আমি মনে করি আমি শেষে মনে রাখতে পারব।
এই পাসওয়ার্ডগুলো যেন শব্দশই ব্যবহার করার কোনো কারণ নেই; আপনি চাইলে ক্যারেক্টার যোগ বা মডিফাই করতে পারেন। আমি অধিকাংশ আট-ক্যারেক্টার পাসওয়ার্ড ব্যবহার করি। কিছু জায়গা পাসওয়ার্ডে নির্দিষ্ট উপাদান চায়, যেমন কমপক্ষে একটি লোয়ার-কেস লেটার, একটি আপার-কেস লেটার, একটি নম্বর, এবং একটি সিম্বল।
আমি যদি কোনো পাসওয়ার্ড পছন্দ না করি, স্ক্রিপ্টটি আবার রান করি অন্য ১২টি জেনারেট করতে। কেউ মন্তব্য করতে পারে যে dev/urandom শুধু সিউডো-র্যান্ডম নাম্বার জেনারেট করে, কিন্তু এই স্ক্রিপ্ট নিশ্চিতভাবে আমার নিজের চেয়ে ভালো কাজ করে।