आवधिक रूप से, मुझे नए पासवर्ड के साथ आने की आवश्यकता होती है, जिनमें से कुछ दूसरों की तुलना में अधिक सुरक्षित होने की आवश्यकता होती है। जब मुझे एक नया लॉगिन बनाना होता है तो मेरा दिमाग अक्सर खाली हो जाता है, और यह छोटा बैश स्क्रिप्ट उस खालीपन को भरता है। पूर्ण प्रकटीकरण: मुझे इस स्क्रिप्ट का अधिकांश हिस्सा कहीं पोस्ट किया हुआ मिला और मैंने इसमें मामूली संशोधन किया।
#!/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 12 कैरेक्टर काटकर 12-कैरेक्टर पासवर्ड के साथ समाप्त होता है। for लूप 12 बार चलता है, इसलिए आपको 12 पासवर्ड मिलते हैं।
Generating 12-character passwords
8WMKHeXeYsND
X+V3jWOuBWwp
fSk6inI+LfYP
hIPndcBOSh7m
bb/w9mx8OlHv
hdIOibUaMt3Y
wl//CobIG5bR
dih0qQQMJiXw
BIN2QfNA4jCe
DF0c8Auz1qL4
RM8MMq/D8C8H
rZIG5hbghcMy
यह उदाहरण आउटपुट कैरेक्टर का एक बहुत अच्छा मिश्रण दिखाता है। एक बात ध्यान देने योग्य है कि केवल नॉन-अल्फान्यूमेरिक कैरेक्टर / और + हैं।
जब मुझे एक नए पासवर्ड की आवश्यकता होती है, तो मैं इस आउटपुट को देखता हूं कि कौन सा मुझे "पसंद" आता है। यदि यह एक पासवर्ड है जिसका मैं अक्सर उपयोग करूंगा, तो मैं चाहूंगा कि यह कुछ ऐसा हो जो मुझे लगता है कि मैं अंततः याद रख सकता हूं।
इनका शाब्दिक रूप से उपयोग करने का कोई कारण नहीं है; आप चाहें तो कैरेक्टर जोड़ या संशोधित कर सकते हैं। मैं ज्यादातर आठ-कैरेक्टर पासवर्ड का उपयोग करता हूं। कुछ स्थानों पर पासवर्ड में विशिष्ट तत्वों की आवश्यकता होती है, जैसे कम से कम एक लोअर-केस अक्षर, एक अपर-केस अक्षर, एक नंबर, और एक सिंबल।
अगर मुझे कोई पासवर्ड पसंद नहीं आता, तो मैं स्क्रिप्ट को फिर से चलाकर 12 और उत्पन्न करता हूं। कोई टिप्पणी कर सकता है कि dev/urandom केवल छद्म-यादृच्छिक संख्या उत्पन्न करता है, लेकिन यह स्क्रिप्ट निश्चित रूप से मेरे अपने दम पर करने से कहीं बेहतर काम करती है।