bash இல் கடவுத்தொடர் தேரி
Published by Arun Isaac on
In other languages: English
Tags: மென்பொருள், bash
Electronic Frontier Foundation எளிமையான பயன்மையை மனதில் கொண்டு கடவுத்தொடர் தேர்ந்தெடுப்பதற்குப் புதிய சொல் பட்டியல்களை வெளியிட்டுள்ளது. பகடைக் காய்கள் வாங்க சோம்பலாக இருந்ததால், கடவுத்தொடர் தேர்ந்தெடுப்பதற்கு bash இல் உரைநிரல் ஒன்றை எழுதினேன்.
random-line செயலாற்றி /dev/random யிடமிருந்து இரண்டு எண்ணுண்மிகளை (0 முதல் 65535 வரையான எண்கள்) எடுத்து, rejection sampling மூலம் சீரற்ற முறையில் சொல் பட்டியலிலிருந்து சொற்களைத் தேர்ந்தெடுக்கிறது. இயல்பாக, இந்த உரைநிரலால் 65536 சொற்களுக்கு மேலுள்ள சொல் பட்டியல்களைக் கையாள முடியாது. ஆனால் அது பரவாயில்லை.
நினைவுகூர்வதற்குக் கடவுச்சொற்களை விட கடவுத்தொடர்கள் எளிமையானவை. ஆனால் தட்டச்சிட கடினமானவை. இது எவ்வளவு தொல்லையாக இருக்குமென்று தெரியவில்லை. பார்க்கலாம்.
WORDLIST=~/eff_large_wordlist.txt NO_OF_WORDS=6 function random-line { NO_OF_LINES=$1 RANDOM_NO=$(od -An -N 2 -t u2 < /dev/random) if [[ $RANDOM_NO -lt $NO_OF_LINES ]] then echo $(expr $RANDOM_NO + 1) else random-line $NO_OF_LINES fi } NO_OF_LINES=$(wc -l < $WORDLIST) for i in $(seq 1 $NO_OF_WORDS) do RANDOM_LINE=$(random-line $NO_OF_LINES) RANDOM_WORD=$(sed -n ${RANDOM_LINE}p $WORDLIST | awk '{print $2}') printf "%s " $RANDOM_WORD done printf "\n"
பதிவிறக்கங்கள்
ppgen.sh – கடவுத்தொடர் தேரி உரைநிரல்