यादृच्छिक संख्याएँ उत्पन्न करना

Bash:
यादृच्छिक संख्याएँ उत्पन्न करना

कैसे करें:

बैश में, $RANDOM चर यादृच्छिक संख्या उत्पन्न करने के लिए जाने-माने है। प्रत्येक बार जब आप इसका संदर्भ लेते हैं, तो बैश 0 और 32767 के बीच का एक प्सेउडोरैंडम पूर्णांक प्रदान करता है। आइए कुछ व्यावहारिक उदाहरणों की खोज करें:

# $RANDOM का मूल उपयोग
echo $RANDOM

# एक निर्दिष्ट रेंज में यादृच्छिक संख्या उत्पन्न करना (यहाँ 0-99)
echo $(( RANDOM % 100 ))

# पासवर्ड या कुंजियों के लिए उपयुक्त अधिक "सुरक्षित" यादृच्छिक संख्या उत्पन्न करना
# /dev/urandom का उपयोग od कमांड के साथ करना
head -c 8 /dev/urandom | od -An -tu4

# पुनःनिर्मितता के लिए RANDOM को सीड करना
RANDOM=42; echo $RANDOM

नमूना आउटपुट (ध्यान दें: वास्तविक आउटपुट भिन्न होगा क्योंकि संख्याएँ यादृच्छिक हैं):

16253
83
3581760565
17220

गहराई में:

बैश के $RANDOM के पीछे की तंत्र यादृच्छिक संख्याएँ उत्पन्न करती हैं, जिसका अर्थ है कि वे एक एल्गोरिदम का पालन करती हैं और सिद्धांत में, पूर्वानुमेय हो सकती हैं - जो वास्तविक अनिश्चितता की आवश्यकता वाले अनुप्रयोगों के लिए एक संभावित सुरक्षा दोष हो सकता है। आधुनिक क्रिप्टोग्राफिक अनुप्रयोगों को आमतौर पर /dev/urandom या लिनक्स में /dev/random जैसे भौतिक घटनाओं से या यादृच्छिक डेटा उत्पन्न करने के लिए विशेष रूप से डिज़ाइन किए गए हार्डवेयर से प्राप्त यादृच्छिकता की आवश्यकता होती है, जो पर्यावरणीय शोर ग्रहण करते हैं।

आकस्मिक या गैर-सुरक्षा महत्वपूर्ण कार्यों के लिए, $RANDOM पर्याप्त होता है और सरलता का लाभ प्रदान करता है। हालांकि, क्रिप्टोग्राफिक उद्देश्यों के लिए या जहाँ यादृच्छिकता की गुणवत्ता महत्वपूर्ण है, विकासकर्ताओं को OpenSSL या रोबस्ट यादृच्छिक संख्या जनरेटर लाइब्रेरी वाली प्रोग्रामिंग भाषाओं की ओर देखना चाहिए जो क्रिप्टोग्राफ़ी के साथ डिज़ाइन की गई हैं।

जबकि बैश के $RANDOM स्क्रिप्ट्स में मूल यादृच्छिक संख्याओं की आवश्यकता के लिए अपना उद्देश्य पूरा करते हैं, जहां यादृच्छिकता की गुणवत्ता या सुरक्षा महत्वपूर्ण है, वहाँ विकासकर्ताओं को अधिक शक्तिशाली समाधान की ओर अग्रसर होना चाहिए।