উত্তর:
পাসওয়ার্ড তৈরির জন্য অনেকগুলি প্রোগ্রামের মধ্যে pwgen
ব্যক্তিগতভাবে, আমি পাসওয়ার্ড জেনারেটরটি ব্যবহার না করা পছন্দ করি কারণ উত্পন্ন পাসওয়ার্ডটি মনে রাখা খুব কঠিন তবে একটি পোর্টেবল সমাধান হ'ল / ডিভ / ইউরানডম ব্যবহার করা
কোনও বিশেষ অক্ষর নেই এমন এলোমেলো পাসওয়ার্ড তৈরি করা 10 অক্ষর দীর্ঘ:
$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10`
dyxJRKldvp
এটি / dev / urandom থেকে বাইটগুলি ধরে নিয়ে, tr
কমান্ডে বর্ণিত প্যাটার্নে ফিট না হওয়াগুলি মুছে ফেলা এবং এটির সাথে 10 টি অক্ষরে সীমাবদ্ধ করে কাজ করে head
।
বিশেষ অক্ষরযুক্ত এলোমেলো পাসওয়ার্ড তৈরি করা 10 অক্ষর দীর্ঘ:
$ cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 10 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | head -n 1
MSF4wj@vP0
এটি tr
অযাচিত বাইটগুলি অপসারণের পরে কিছুটা আলাদা কৌশল ব্যবহার করে , কারণ এটি কমপক্ষে একটি বিশেষ চরিত্র রাখতে বাধ্য করা হয়। এটি fold
10 টি গোষ্ঠীতে লাইনটি মোড়ানোর জন্য কমান্ডটি ব্যবহার করে এবং তারপরে grep
একটি বিশেষ অক্ষরযুক্ত কেবলমাত্র রেখা আনার জন্য কাজ করে । head
তারপরে প্রয়োজনীয় পাসওয়ার্ডগুলির সাথে প্রথম পাসওয়ার্ড নিয়ে আসে।
আমি এই ছোট স্ক্রিপ্টটি কয়েক বছর আগে লিখেছিলাম এবং তখন থেকে এটি ব্যবহার করে আসছি। তোমার কিছু হয়ে গেলে এটি একটি আকর্ষণীয় অপব্যবহার printf
এবং BASH একটি সুদৃশ্য বৈশিষ্ট্য যে, আমি দুর্ভাগ্যবশত খুব কমই স্ক্রিপ্ট দেখতে ব্যবহার করে: typeset
।
#!/usr/bin/env bash
# Released into public domain
# Aaron Bockover, 2005
# http://abock.org
typeset -i length; length=$1
typeset -i rounds; rounds=$2
[ $rounds -lt 1 ] && rounds=1
[ $length -lt 1 ] && {
echo "Usage: $0 <length> [<rounds>]" 2>/dev/null; exit 1;
}
for ((i=0; i < $rounds; i++)); do
for ((j=0; j < $length; j++)); do
set=$(($RANDOM % 20))
if [ $set -le 6 ]; then o=65; l=26; # 35% uppercase
elif [ $set -le 13 ]; then o=97; l=26; # 35% lowercase
elif [ $set -le 17 ]; then o=48; l=10; # 20% numeric
elif [ $set -le 18 ]; then o=58; l=7; # 10% symbolic
elif [ $set -le 19 ]; then o=33; l=15; fi
ord=$(($o + $RANDOM % $l))
printf \\$(($ord / 64 * 100 + $ord % 64 / 8 * 10 + $ord % 8))
done
echo
done
আমি কেপাসএক্সও যুক্ত করব যা আপনাকে কয়েকটি দুর্দান্ত বৈশিষ্ট্য সহ শক্তিশালী পাসওয়ার্ড তৈরির জন্য সিস্টেম এনট্রপি ব্যবহারের বিকল্প দেয় - সবগুলি জিইউআই ব্যবহার করে। এটি আপনাকে আপনার পাসওয়ার্ডগুলি পরিচালনা করার এবং একটি এনক্রিপ্ট করা ফাইলগুলিতে সেভ করার বিকল্প দেয়।
কেপিএক্স পাসওয়ার্ড জেনারেটর ইন্টারফেসটি এমনভাবে দেখায়:
apg
আপনি সহজে পাসওয়ার্ড মনে রাখতে পারেন এমন পাসওয়ার্ড চাইলে কোনও খারাপ পছন্দ নয়।
; apg -m 16 -a 0 -t
ByajNudgolIston9 (Byaj-Nud-gol-Ist-on-NINE)
Af}ockhuecUjrak8 (Af-RIGHT_BRACE-ock-huec-Uj-rak-EIGHT)
IakijKadmomIvgig (Iak-ij-Kad-mom-Iv-gig)
NutIlOsyahodBeef (Nut-Il-Os-ya-hod-Beef)
anMechOybekazell (an-Mech-Oyb-ek-az-ell)
VumushCummAd{fra (Vum-ush-Cumm-Ad-LEFT_BRACE-fra)
মনে রাখবেন যে, অনুযায়ী এই , আপনার পাসওয়ার্ড লম্বা অন্তত 12 অক্ষরের হতে হবে।
আমি একটি এলোমেলো ব্যবহার করি না, তবে সমস্ত আক্রমণের উদ্দেশ্যে ... মাস্টার পাসওয়ার্ড এবং অন্যান্য পাসওয়ার্ড তৈরির জন্য শেষ পাসটি যথেষ্ট enough আমি কীভাবে মাস্টার পাসওয়ার্ড তৈরি করি তা এখানে।
echo -n "some seed" | openssl dgst -binary -sha1 | base64 | sed -e 's/.\{4\}/& /g'
এবং আউটপুট
H1sI Wpbj JE2P CdVJ A1qb 9B/e u7M=
এখন কেবল কয়েকটি বিভাগ বেছে নিন এবং একটি পাসওয়ার্ড তৈরি করুন, সেগুলি পুনর্বিন্যাস করুন, কিছু রেখে দিন, একটি অক্ষর বা 2 যুক্ত করুন যাতে এলোমেলো হিসাবে ভাল। যতক্ষণ আপনি নিজের বীজ স্মরণ করতে পারেন ততক্ষণ আপনি এটি পুনরায় জেনারেট করতে পারবেন এবং আপনার পাসওয়ার্ডটি পুনরুদ্ধার করতে পারবেন (যতক্ষণ না আপনি খুব বেশি পরিবর্তন না করেন)
এক্সকেসিডি-স্টাইলের পাসফ্রেস উত্পন্ন করার জন্য এখানে এক-অফ স্ক্রিপ্ট । /usr/share/dict/words
এর জন্য একটি দুর্দান্ত অভিধান নয় কারণ বেশিরভাগ শব্দ দীর্ঘ হয় তবে এটি সহজেই পাওয়া যায়। উত্তম পাসফ্রেজের জন্য আপনি সংক্ষিপ্ত শব্দের একটি অভিধান যেমন এস / কী ওয়ান-টাইম পাসওয়ার্ড শব্দ তালিকার ব্যবহার করতে পারেন ।
dict="/usr/share/dict/words"
max="`wc -l <"$dict"`" \
perl -e '$count=4;
$/=\4; while (<>) {
print unpack('L') % $ENV{max} + 1, qq(\n); last unless --$count
}' /dev/urandom |
while read n ; do
tail -n "+$n" "$dict" | head -1
done
আপনি যদি কোনও জিনোম ব্যবহারকারী হন এবং আপনার বিভিন্ন অ্যাকাউন্টের জন্য পাসওয়ার্ডও সংরক্ষণ করতে হয় আপনি প্রকাশের পাসওয়ার্ড পরিচালক ব্যবহার করতে পারেন । এটিতে একটি প্রাথমিক পাসওয়ার্ড জেনারেটর বৈশিষ্ট্য রয়েছে, এতে আপনি কেবল পাসওয়ার্ডের দৈর্ঘ্য নির্ধারণ করেন এবং অক্ষর এবং অঙ্কগুলি ছাড়াও বিরামচিহ্নগুলি অন্তর্ভুক্ত করবেন কিনা তা বেছে নিন।
আমি ভুল হলে আমাকে সংশোধন করুন, তবে: যতদূর আমি এটি বুঝতে পেরেছি, কোনও কম্পিউটার পুরোপুরি এলোমেলো স্ট্রিং সহ আসতে পারে এমন কোনও উপায় নেই । সুতরাং আমি নিম্নলিখিত ধারণাটি নিয়ে এসেছি [এবং আশা করি এটি সম্পূর্ণ নির্বোধ নয়):
যদি কেউ একটি 26-তরফা পাশা নিক্ষেপ করে, তবে নিক্ষেপ করার সুযোগটি বলুন, 26 বলতে হবে 1: 26। অন্য কথায়: 26 নিক্ষেপ করার সুযোগটি প্রায় 0.04%। তদ্ব্যতীত, একটি ডাইসের কোনও স্মৃতি নেই এবং কোনও বাগ নেই। আমি নিম্নলিখিত ধারণা নিয়ে এসেছি:
কাগজ মডেলগুলি মুদ্রণের জন্য:
দ্রষ্টব্য : আমি কোনও গণিত প্রো নই এবং আমি 2600 ম্যাগাজিনে একটি নিবন্ধ পড়ার পরে এই ধারণাটি নিয়ে এসেছি যা এটি বর্ণনা করেছে। আমি স্রেফ বেসিক ধারণায় আমার নিজস্ব কিছু ধারণা যুক্ত করেছি।
এছাড়াও : আমি ভাবছি যদি এটি ' আপনার প্রথম ব্রুট ফোর্স পাসওয়ার্ড ক্র্যাকার লিখুন ' এর জন্য নিখুঁত উদাহরণ নয় । তবে আপনার প্রশ্ন আমাকে আলোচনার জন্য এই ধারণাটি সামনে আনার উপযুক্ত কারণ দিয়েছে।
শক্তিশালী পাসওয়ার্ড তৈরি করতে আমার .zshrc.local ফাইলটিতে আমার দুটি উপকরণ যুক্ত হয়েছে।
প্রথমটি হ'ল:
alias pw.graph="cat /dev/urandom | tr -dc '[:graph:]' | fold -w 1000 | perl -pe 's/(.)(?=.*?\1)//g' | head -n 5"
পিডব্লু.গ্রাফ টাইপ করার আউটপুট প্রতিটি অক্ষরের পাঁচটি লাইন যা স্পেস বার ব্যতীত একটি কীবোর্ডে টাইপ করা যায়:
/d=|&mRq!g$QaNZ'L;CfEli,D3\)*h-jkerzv?{y"_Ic(0BtxJwF59:@G}KV1X2o>S~[#]s+W%A.<6bpTO^uP7U4HMYn`8
RIdW87{a4O3][?&rTn=m/:Y`_u*hqy2c%s@!ZPM$5to1f-.U9ClK,)'jDi0"pw>EzN^|gX~BSAJk\VFG(H<bx}+Q6#vL;e
s^H@yEo/X$|d?_jw7-n'l>m"Cb\W5.tTe0APB1D!#69[p+(8x}F&~RM`q3Q%vhfOiUZz]ucJk:)*agGV;=NY4{,K2SLrI<
$/t|!s}og5u:X~hcJUyYHf>;l<zDedL`.T*K8]CBSW[(xw+Mm^E3r16b-97%'@jVR{ZG#0p4AP=,I?\n&"a)vqNkQ2iO_F
,7n|^Y\%MpeBqvhI3mE<9zPS/~+sU`4ZoCWl&uxd'ft"kjcOy0X!{a-T_6RKiVg5Hb21D)w>@*N8;A[(rLG=$Q:.#]FJ?}
দ্বিতীয়টি হ'ল:
alias pw.alnum="cat /dev/urandom | tr -dc '[:alnum:]' | fold -w 1000 | perl -pe 's/(.)(?=.*?\1)//g' | head -n 5"
Pw.alnum টাইপ করার আউটপুট হ'ল প্রতিটি মুদ্রণযোগ্য অক্ষর এবং সংখ্যা বড় এবং নিম্ন উভয় ক্ষেত্রে:
E6wgCfVBbXjyzYQ8USKl79LqPih0e5mvGrNHd3osaW2OxkJ1RM4nFTtcuZIpDA
GTvQON1dsZSpJmegBMK6bqnEciU7k0AoV2H4Wh53zr9YRfLlDxywXItu8CjPFa
6u1Db9MfyBApZdU7gqoV2PGwH5LcxWi3JNj8nkQCIThezSlYEXsOtrmF04KvaR
VFrsGwI9yAmabEnlRTKgZO23vUq4f6LHkzQP7tMjNW8ph1exuDoBCXSd50JciY
G3r6Em5tlfjQARJx9gWHes7bCVwkzcP48KaSIXyUFBMLqT0op1uDNdih2nYZOv
আমি সাধারণত পিডব্লু.গ্রাফ ব্যবহার করি এবং লাইনের একটি এলোমেলো অংশ অনুলিপি করি। কিছু পাসওয়ার্ড চিহ্নগুলির অনুমতি দেয় না তাই আমি তার জন্য pw.alnum এর একটি অংশ ব্যবহার করি।
আমি এইচটিএমএল ফাইল হিসাবে সংরক্ষণিত ব্যবহার করি:
<script>
var keylist="abcdefghijklmnopqrstuvwxyzABCEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*_"
var temp=''
function generatepass(plength){
temp=''
for (i=0;i<plength;i++)
temp+=keylist.charAt(Math.floor(Math.random()*keylist.length))
return temp
}
function populateform(enterlength){
document.pgenerate.output.value=generatepass(enterlength)
}
</script>
<form name="pgenerate">
<input type="text" size=32 name="output">
<input type="button" value="Generate Password" onClick="populateform(this.form.thelength.value)"><br />
<b>Password Length:</b> <input type="text" name="thelength" size=3 value="32">
</form>
[:print:]
জন্যtr
(tr -dc '[:print:]'
,) যদি আপনি একটি বিট ভীতু হয়। সমস্যাটি তখন আপনার কীবোর্ডে থাকা প্রতীকগুলি হবে ...