कैसे उपयोग करें / देव / (यू) यादृच्छिक


32

मैं /dev/(u)randomUbuntu या किसी * nix sistems पर कैसे उपयोग कर सकता हूं ?

मैंने यह कोशिश की, लेकिन यह कहता है कि अनुमति से इनकार कर दिया।
नोट: मैंने रूट के रूप में भी प्रयास किया।

/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random

2
कृपया ध्यान दें कि इन आदेशों का उपयोग केवल तब किया जाना चाहिए, जब आपको वास्तव में उच्च गुणवत्ता वाले यादृच्छिक डेटा की आवश्यकता होती है, आमतौर पर अच्छे पासवर्ड बनाने के लिए। अन्यथा अधिक हल्के वजन वाले विकल्प होते हैं, उदाहरण के RANDOMलिए यादृच्छिक सकारात्मक पूर्णांक संख्या बनाने के लिए शेल वातावरण 'चर' : echo $RANDOMऔर यादृच्छिक क्रमांक shufउत्पन्न करने के लिए प्रोग्राम , उदाहरण के लिए एक प्लेलिस्ट से यादृच्छिक क्रम में खेलते हैं।
सूडोडस

जवाबों:


54

यह डिवाइस की तरह एक फ़ाइल है, इसलिए आप इसे बिल्ली या उससे कॉपी जैसी चीजें कर सकते हैं। उदाहरण के लिए:

dd if=/dev/urandom of=~/urandom_test count=4 bs=1024

यादृच्छिक बाइट्स के 4K युक्त एक फ़ाइल बनाता है।

cat /dev/urandom > ~/urandom_test2 

जब तक आप Ctrl-C नहीं मारते, तब तक आप उस फ़ाइल को यादृच्छिक बाइट्स लिखना जारी रखेंगे। कम प्रदर्शन प्रणाली पर ऐसा न करें ...

head -30 /dev/urandom > ~/urandom_test3

यादृच्छिक बाइट्स की 30 लाइनें लिखेंगे


1
तब तक के लिए बेझिझक उठो!
अय्याशी

5
मैं चाहूंगा कि मेरा प्रतिनिधि> 15
कनेर कॉर्माज़

1
नोट: कम प्रदर्शन प्रणाली पर बिल्ली / देव / उर्जापत्य> ~ / urandom_test2 मत करो -> जो सिस्टम को जमा देता है
Caner Korkmaz

1
खैर .. कि वास्तव में एक लाइन की अपनी परिभाषा पर निर्भर करता है। मेरी परिभाषा है bytes terminated by a \n। आपका क्या है? head -30 /dev/urandomआपको यादृच्छिक बाइट्स की 30 लाइनें देगा। उन पंक्तियों की लंबाई निश्चित रूप से यादृच्छिक होगी। wc -lयदि आप आश्वस्त नहीं हैं तो अपनी आउटपुट फ़ाइल पर चलने का प्रयास करें ।
अय्याशी

3
ध्यान दें कि /dev/urandomप्रति 32 MiB तक सीमित है read()और उन 32 MiB पैदावार ddकरने के लिए एक बार फिर पढ़ने की कोशिश नहीं करेगा /dev/urandom, इसलिए आपको कॉल ddकरना होगा iflag=fullblock। देखें dd 1 GB के बजाय 32 MB रैंडम फ़ाइल का निर्माण कर रहा है
Sergiy Kolodyazhnyy

14

यादृच्छिक बाइट्स प्राप्त करें

यदि आपको एक निश्चित संख्या में यादृच्छिक बाइट्स की आवश्यकता है, तो उस बाइट्स की संख्या को पढ़ें /dev/urandom
यह एक "विशेष फ़ाइल" है जो यादृच्छिक संख्याओं को पढ़ने के लिए फ़ाइल की तरह बनती है।

catसे पढ़ने का उपयोग करना /dev/urandomएक बुरा विचार है, क्योंकि यह /dev/urandomअंत तक पढ़ने की कोशिश करेगा - लेकिन यह समाप्त नहीं होता है।

आप उपयोग कर सकते हैं head। लेकिन ध्यान रखें कि बाइट से पढ़ें, रेखा से नहीं - क्योंकि लाइनों को यादृच्छिक रूप से नईलाइन बाइट्स द्वारा अलग किया जाएगा।

इसलिए, एक फ़ाइल में 30 यादृच्छिक बाइट्स पढ़ने के लिए random.bytes, उपयोग करें:

head -c 30 /dev/urandom > random.bytes

आप इसे सामान्य उपयोगकर्ता के रूप में पढ़ सकते हैं।

अकेला / देव / यादृच्छिक छोड़ दें

आम तौर पर, आप उपयोग करना चाहते हैं /dev/urandom, नहीं /dev/random

समस्या यह है कि /dev/randomसही तरीके से उपयोग करना कठिन है - और गलत तरीके से उपयोग करना आसान है। इसका उपयोग करना गलत काम करता है, लेकिन बाद में अजीब - यहां तक ​​कि यादृच्छिक - प्रदर्शन समस्याएं पैदा करता है। कभी कभी।

जब आप उपयोग करते हैं /dev/urandom, तो यह /dev/randomपेचीदा भागों की देखभाल करते हुए, आंतरिक रूप से उपयोग करता है ।


4

यदि आप इसे मान्यता प्राप्त संख्याओं के साथ पढ़ना चाहते हैं तो आप कर सकते हैं

od -d /dev/random

0

मैं व्यक्तिगत रूप से टोकन बनाने के लिए इसका उपयोग करता हूं:

dd if=/dev/urandom  count=1 bs=128 | sha512sum
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.