අහඹු නූලක් ජනනය කරන්නේ කෙසේද?


254

අහඹු නූලක් ජනනය කිරීමට මම කැමතියි (උදා: මුරපද, පරිශීලක නම්, ආදිය). අවශ්‍ය දිග නියම කිරීමට හැකි විය යුතුය (උදා: අක්ෂර 13).

මට භාවිතා කළ හැකි මෙවලම් මොනවාද?

(ආරක්ෂාව සහ පෞද්ගලිකත්ව හේතූන් මත, වෙබ් අඩවියක මාර්ගගතව නොව, නොබැඳි ලෙස නූල් ජනනය කිරීම වඩාත් සුදුසුය.)


1
AskUbuntu හි දැනටමත් හොඳ පිළිතුරු තිබේ . (මම apgපෞද්ගලිකව භාවිතා කරමි .)
Sparhawk

1
@Sparhawk AskUbuntu ප්‍රශ්නය / පිළිතුරු ලැයිස්තුගත කිරීමේ මෙවලම් පිළිබඳ වැඩි යමක් වේ. ප්රදර්ශනය මෙතන පිළිතුරක් එකතු කිරීම සලකා බැලීමට කාරුණික වන්න ආකාරය භාවිතා කිරීමට apgඅහඹු string උත්පාදනය කිරීමට.
ලන්ඩ්‍රෝනි

1
පරිගණකවල අහඹු සංඛ්‍යා උත්පාදනය භාවිතා කිරීම ගැන ප්‍රවේශම් වන්න. සමහර ඒවා අහඹු ලෙස පෙනෙන ප්‍රමාණයට වඩා බෙහෙවින් අඩු ය, නමුත් 'හොඳ' සහ 'නරක' අහඹු සංඛ්‍යා උත්පාදනය අතර වෙනස පැවසීම තරමක් දුෂ්කර ය.
සොබ්රික්

Ob සබ්රික් ව්‍යාජ සසම්භාවී සංඛ්‍යා උත්පාදක යන්ත්ර පිළිබඳ විශිෂ්ට කරුණ (උදා /dev/urandom). උදා: random.org මත පදනම්ව සත්‍ය සසම්භාවී සංඛ්‍යා උත්පාදක යන්ත්‍ර භාවිතා කරමින් පිළිතුරු ලබා ගැනීම සතුටක් .
ලන්ඩ්‍රෝනි

33
විහිළු පිළිතුර: සැබවින්ම අහඹු නූලක් ජනනය කිරීම සඳහා, නව පරිශීලකයෙකු ඊමාක්ස් (හෝ විම්) ඉදිරිපිට තබා ඔවුන්ගෙන් ඉවත් වන ලෙස ඉල්ලා සිටින්න. ;)
වයිල්ඩ්කාඩ්

Answers:


233

එය කිරීමට මගේ ප්‍රියතම ක්‍රමය වන්නේ අනවශ්‍ය අක්ෂර මකා දැමීමට /dev/urandomඑකට භාවිතා trකිරීමයි. උදාහරණයක් ලෙස, ඉලක්කම් සහ අකුරු පමණක් ලබා ගැනීමට:

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo ''

විකල්පයක් ලෙස, OWASP මුරපදයේ විශේෂ අක්ෂර ලැයිස්තුවෙන් තවත් අක්ෂර ඇතුළත් කිරීමට :

</dev/urandom tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' | head -c 13  ; echo

trආදානය ගැන පැමිණිලි කිරීමේදී ඔබට යම් ගැටළුවක් ඇත්නම් , මේLC_ALL=C ආකාරයට එකතු කිරීමට උත්සාහ කරන්න :

LC_ALL=C tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 13 ; echo

19
නැතහොත් මෙය කරන්න: head /dev/urandom | tr -dc A-Za-z0-9 | head -c10- මෙම ක්‍රමය වඩාත් නිවැරදි ය. ඔබට කැපිටල්, පහත් හෝ ඉලක්කම් සහිත අක්ෂර 10 ක් ලැබේ
බ්‍රැන්ඩින්

10
පළමු headවිධානය ගැටළු සහගත විය හැකිය. එය පළමු පේළි 10 සිට ප්‍රතිදානය කරනු ඇත /dev/urandom, එයින් අදහස් වන්නේ එය 10 වන නව රේඛාව දුටු වහාම නතර වනු ඇති බවයි. එබැවින් trවිධානය වෙත යවන ප්‍රතිදානයේ දිග අහඹුයි. සිට නිමැවුමේ අක්ෂර 13 ට වඩා අඩු විය හැකි ය tr. මෙය සිදුවීමේ සම්භාවිතාව මම ගණනය කර නැත, ගණනය කිරීම් ටිකක් උපක්‍රමශීලී ය.
kasperd

6
මේ ආකාරයට වඩා හොඳ කරන්න:<dev/urandom tr -dc "$charset" | head -c "$length"
PSkocik

3
+1 බාෂ් විධාන රේඛාව සඳහා පැන ගිය OWASP මුරපද විශේෂ අක්ෂර පිටුවෙන් අනෙක් අක්ෂර ඇතුළත් කිරීමට ඉක්මන් උත්සාහයක් මෙන්න :tr -dc A-Za-z0-9\!\"#$\&\'\(\)\*+,-./\:\\\\\;\<=\>\?@[]^_`{\|}~
රූප්

2
UpRup ඔබේ tr ..විධානය සමඟ ක්‍රියා නොකරන්නේ කුමක් දැයි මට විශ්වාස නැත, නමුත් සියල්ල උපුටා දැක්වීම (තනි උපුටා දැක්වීම හැර) ක්‍රියා කරයි - tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~'.
කෙනී එවිට්

163

මම භාවිතා කරන්නේ openssl ගුප්ත විද්‍යාවේ ස්විස් හමුදා පිහියයි.

openssl rand -base64 12

හෝ

openssl rand -hex 12

11
rand -hexමගේ යතුරුපුවරුවේ 90+ ට වඩා ප්‍රතිදානය අක්ෂර 16 කට සීමා කරයි. base64 වඩා හොඳ වන්නේ එය අක්ෂර 64 ක් වන නමුත් එය අහඹු ලෙස නොවේ (උදා: පුරෝකථනය කළ හැකි පෑඩින් රටා ඇත, සමහර විට සමහර අක්ෂර අනෙක් ඒවාට වඩා බොහෝ විට දිස් වේ).
මාටින් ටුවර්නොයි

Ar කාර්පෙට්ස්මෝකර්: උදාහරණයෙන් openssl rand -base64 12ප්‍රතිදාන අක්ෂර 16 ක් නිපදවන බව සලකන්න (මන්ද අගයන් 256 ක් 64 ට අනුරූපණය වන බැවිනි). හෙක්ස් උදාහරණයෙන් අක්ෂර 24 ක් නිපදවයි. සරල 1: 2 සිතියම්ගත කිරීම නිසා හෙක්ස් සම්බන්ධයෙන් කිසිදු අලාභයක් සිදු නොවේ, නමුත් පෑඩින් භාවිතා කරන බැවින් base64 නඩුවේ සුළු ප්‍රමාණයක් තිබිය හැකිය. රේඩික්ස් අහඹු ලෙස බලපාන්නේ නැත, එය එකක් අනෙකට සිතියම් ගත කරන ආකාරයයි. (සහ මුළු බිට් ගණන වඩා වැදගත් වේ).
වැඩිදුර දැනුම් දෙන තුරු විරාමය.

ප්රශ්නය එසේ ඔබේ අදහස් නිවැරදි වන අතර, @DennisWilliamson "නිශ්චිත දිග අහඹු string උත්පාදනය කිරීමට කොහොමද?" විය වැනි , එය හරි මේ ප්රශ්නය පිළිබඳ සන්දර්භය තුළ .
මාටින් ටුවර්නොයිජ්

6
මෙම පිළිතුර තවත් ඉහළ නැංවිය යුතුය. urandom, pwgen, gpw, ආදිය ඔබේ පද්ධතියේ තිබිය හැකිය හෝ නොතිබිය හැකිය; විවිධ පරිසරයන් තුළ, එකක් මත ක්‍රියාත්මක වන ප්‍රතිපත්තියක් තවත් එකක් මත ක්‍රියා නොකරනු ඇත. Opensl නොතිබීම ඉතා අක්‍රිය සැකසුමකි. ඊටත් වඩා හොඳ: openssl rand -base64 32 | tr -d / = + | cut -c -16 එමඟින් ඔබට අක්ෂරාංක නොවන වර්‍ග 32 ක් ලබා දෙන අතර වර්‍ග 16 ක් දක්වා අඩු කරනු ඇත. පරිපාලකයෙකු ලෙස කටයුතු කිරීම පහසු කරයි. පරිශීලකයින්ට ඇත්තේ ඇල්ෆනම් පමණි (ඒවා අගය කිරීමට නැඹුරු). විශේෂ අක්ෂර ඉවත් කිරීම එන්ට්‍රොපිය කෙරෙහි අධික ලෙස බලපාන්නේ නැති තරම් දිග දිගු වේ. රන්වන්.
zentechinc

1
එහි අත්පොතට අනුව, openssl randවිධානය තවමත් ව්‍යාජ සසම්භාවී උත්පාදකයක් වන බැවින් ගුප්ත විද්‍යාත්මකව ආරක්ෂිත නොවේ. මෙය මගේ අවශ්‍යතාවන්ට ගැලපෙන නමුත් සියලු යෙදුම්වල අවශ්‍යතාවයට නොගැලපේ, උදා: වෙනත් අදහස් දැක්වීමක සඳහන් වන පරිදි IV ආරම්භ කිරීම.
spikyjt

157

අහඹු මුරපදයක් ජනනය කිරීමට ඔබට භාවිතා කළ හැකිය pwgen:

pwgen අහඹු, අර්ථ විරහිත නමුත් උච්චාරණය කළ හැකි මුරපද ජනනය කරයි. මෙම මුරපදවල ඇත්තේ කුඩා අකුරු හෝ ඉහළ හා පහළ අකුරු මිශ්‍ර කිරීම හෝ විසි කරන ලද ඉලක්කම් පමණි. ඉහළ අකුරු සහ ඉලක්කම් ස්ථානගත කර ඇත්තේ වචනය පමණක් කටපාඩම් කිරීමේදී ඔවුන්ගේ ස්ථානය මතක තබා ගැනීම පහසු කරමිනි.

දිග 13 මුරපද 7 ක් ජනනය කරන්න:

geek@liv-inspiron:~$ pwgen 13 7
Eu7Teadiphaec giepahl3Oyaiy iecoo9Aetaib4 phaiChae6Eivi athoo3igee8Co
Iphu4ufeDeelo aesoYi2lie9he 

අදහස් දැක්වීම්වල සඳහන් කර ඇති පරිදි, -sතර්කය භාවිතා කිරීමෙන් ඔබට එන්ට්‍රොපිය අඩු කිරීමෙන් වළක්වා ගත හැකිය (එනම් වඩාත් ආරක්ෂිත, සම්පූර්ණයෙන්ම අහඹු නමුත් මුරපද මතක තබා ගැනීමට අපහසු):

geek@liv-inspiron:~$ pwgen -s 13 7
eAfycrPlM4cYv 4MRXmZmyIVNBp D8y71iqjG7Zq7 FQRHcserl4R8O yRCUtPtV3dsqV
0vJpp2h0OrgF1 QTp7MKtJyTrjz 

අහඹු පරිශීලක නාම ජනනය කිරීමට ඔබට භාවිතා කළ හැකිය gpw:

මෙම පැකේජය උච්චාරණය කළ හැකි මුරපද ජනනය කරයි. එය ඔබ පෝෂණය කරන ඕනෑම ශබ්ද කෝෂයකින් ලබාගත් අකුරු තුනේ සංයෝජන (ත්‍රිකෝණ) වල සංඛ්‍යා ලේඛන භාවිතා කරයි.

දිග 13 මුරපද 7 ක් (පරිශීලක නම්) ජනනය කරන්න:

geek@liv-inspiron:~$ gpw 7 13
sreepoidahsas
risadiestinge
ntodynesssine
deodstestress
natinglumperm
riasigentspir
enderiferback

24
රෝදය ප්‍රතිනිර්මාණය නොකිරීම සඳහා +1. "උච්චාරණය කළ හැකි" අවහිරතාවයේ අඩු එන්ට්‍රොපිය ඔබට අවශ්‍ය නැතිනම් සරලව භාවිතා කරන්න pwgen -s.
නේට් එල්ඩ්‍රෙජ්

19

මෙන්න මම කොහොමද කරන්නේ. එය අහඹු ලෙස අක්ෂර 10 ක් ජනනය කරයි. "නැමීම" වෙනත් නූල් සැකසුම් මෙවලම් සමඟ ප්‍රතිස්ථාපනය කිරීමෙන් ඔබට එය ප්‍රශස්තිකරණය කළ හැකිය.

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1

1
+1 මෙම පිළිතුර POSIXly නිවැරදි ය, පා course මාලාවේ භාවිතය අවම /dev/urandomකිරීම
හැරල්ඩ් ෆිෂර්

13

පැබ්ලෝ රෙපෙටෝගේ ආනුභාවයෙන් මම පහසුවෙන් මතක තබා ගත හැකි මෙම විසඳුම සමඟ අවසන් වීමි :

shuf -zer -n20  {A..Z} {a..z} {0..9}

-z බහු රේඛා ප්‍රතිදානය වළක්වයි

-e ප්‍රති .ලය දෝංකාර දෙයි

-r ඕනෑම අක්ෂරයක් කිහිප වතාවක් දර්ශනය වීමට ඉඩ දෙන්න

අක්ෂර 20 ක දිගකින් යුත් -n20 අහඹු නූල්

Char A..Z} {a..z} {0..9 char වර්‍ග පන්ති සඳහා අවසර දී ඇත

shuf යනු ලිනක්ස් කෝරූටිල්ස් හි කොටසක් වන අතර පුළුල් ලෙස ලබා ගත හැකිය හෝ අවම වශයෙන් වරාය කර ඇත.


මට අවශ්‍ය දේ හරියටම! ස්තූතියි!
danfromisrael

13

මා භාවිතා කරන සෑම බෙදාහැරීමක් තුළම ගොඩනගා ඇති සම්මත ලිනක්ස් මෙවලම් සමඟ හැකි උපරිම එන්ට්‍රොපිය සමඟ මුරපදය ජනනය කිරීම:

< /dev/urandom tr -cd "[:print:]" | head -c 32; echo

මෙය ASCII මුද්‍රණය කළ හැකි සියලුම අක්ෂර ප්‍රතිදානය කරයි - 32 (අවකාශය) සිට 126 (tilde, ~) දක්වා. රහස් වචනය දිග සමග පාලනය කළ හැකි headගේ -cධජය. හැකි වෙනත් අක්‍ෂර කට්ටලද ඇත tr(අවකාශය ඇතුළත් නොකිරීමට, අක්ෂර 33-126, භාවිතය [:graph:]).


1
පවත්නා පිළිතුරු වලට වඩා මෙය වෙනස් වන්නේ කෙසේද? විශේෂයෙන්, හර්බට්ගේ මතකයට එයි.
ෆොක්ස්

3
Ox ෆොක්ස් ඔහුගේ විසඳුම දෘඩ කේත ලැයිස්තුවක් භාවිතා කරයි, එය කේත කියවීමේ හැකියාව, සංයුක්තතාවය සහ පිරිසිදුකම නිසා දිරිමත් වැඩසටහන්කරණ පුහුණුවක් නොවේ. විශේෂ මුද්‍රණය කළ හැකි ASCII අක්ෂර සමහරක් බාෂ් මගින් අර්ථ නිරූපණය කළ හැකිය, ඔහුගේ එක් ලයිනර්හි වඩාත්ම පැහැදිලිව පෙනෙන අඩුපාඩුව ගැන සඳහන් නොකල යුතුය - උපරිම එන්ට්‍රොපිය අවශ්‍ය නම්, පවතින සියලුම අක්ෂර ලැයිස්තුවට ඇතුළත් කර ඇති බවට කෙනෙකුට සහතික විය හැකිද? ට්රයිගේ හැසිරීම වෙනස් කළ හැකි අනුපිටපත් නොමැති බවත්? ඔබ ඇසූ දා සිට ඔහුගේ පිළිතුර මගේ ආදේශ කළ යුතුය :)
drws

2
බොහෝ වෙබ් අඩවි වල මුරපදයක තිබිය හැකි අක්ෂර වලට සීමාවන් තිබේ, එබැවින් දෘඩ කේතීකරණය '[: print:]' OWASP මුරපදයේ විශේෂ අක්ෂර ලැයිස්තුව දෘඩ කේතනය කරනවාට වඩා මට හොඳක් දැනෙන්නේ නැත. මෙහි ඇති සෑම පිළිතුරක්ම පාහේ විචල්‍යයක් භාවිතා කිරීමෙන් වැඩිදියුණු කළ හැකි යැයි මට හැඟේ, නමුත් එය එතරම් සුළු වෙනසක් නිසා මම යෝජනා කරන්නේ සංස්කරණයක් පමණි
ෆොක්ස්

2
< /dev/urandom tr -cd '[:graph:]'| tr -d '\\' | head -c 32; echoඔබට අවශ්‍ය නැතිනම් ` characters in generated string. `බොහෝ භාෂාවලින් ගැලවීමේ චරිතයක් ගැටලු ඇති කරයි
mzzzzb

1
YanRyanKrage :graph:දැනටමත් අවකාශය බැහැර කර ඇති නිසා වඩා හොඳ විසඳුමක් :print:.
ඩැනී_එල්

10

ඔබට අවශ්ය සසම්භාවිතාව මට්ටම මත පදනම්ව, ඔබ හුදෙක් bash ගේ (ද සමඟ යන්න පුළුවන් zshසහ kshbuiltin, සමහරවිට අන් අය) $RANDOMවිචල්ය:

$ echo $RANDOM | tr '[0-9]' '[a-z]'
bfeci
$ echo $RANDOM | tr '[0-9]' '[a-z]'
cijjj

කෙලින්ම කියවන ක්‍රම /dev/urandomබෙහෙවින් සරල ය, නමුත් සම්පූර්ණ කිරීම සඳහා ඔබට ද භාවිතා කළ හැකිය $RANDOM:

echo $(for((i=1;i<=13;i++)); do printf '%s' "${RANDOM:0:1}"; done) | tr '[0-9]' '[a-z]'

වැදගත් : මෙම විසඳුම මගින් හෝඩියේ පළමු අක්ෂර 10 භාවිතා කරමින් අහඹු නූල් පමණක් නිපදවනු ඇත. එය ඔබට ප්‍රමාණවත්ද නැද්ද යන්න රඳා පවතින්නේ ඔබට මෙය අවශ්‍ය දේ මතය.


ජනනය කරන ලද නූල් වල දිග ඔබ පාලනය කරන්නේ කෙසේද?
ලන්ඩ්‍රෝනි

@landroni ඔබට නියම දිග ලැබෙන තුරු ඔබට ලූපයක් භාවිතා කිරීම කෙටි කළ හැකි යැයි මම නොසිතමි. $RANDOM0 සහ 32767 අතර අංකයක් මුද්‍රණය කරනු ඇත.
ටර්ඩන්

මම විධානය 20 වතාවක් පමණ ක්‍රියාත්මක කිරීමට උත්සාහ කර ඇති අතර, මට කිසි විටෙකත් අක්ෂර 4-5 ට වඩා වැඩි යමක් ලබා ගත නොහැක ...
landroni

2
@landroni ස්තූතියි, මම දිග නියම කිරීමට ක්‍රමයක් එකතු කළ නමුත් එය එතරම් හොඳ නැත. මම ඒ rand=$(head -c 100 /dev/urandom | tr -dc A-Za-z0-9 | head -c13)වෙනුවට යමක් භාවිතා කරමි.
ටර්ඩන්

1
KSkippyleGrandGourou ඉතා හොඳ කරුණක්. මම මෙය පිළිතුරට එකතු කළෙමි, ස්තූතියි.
ටර්ඩන්


6

වඩාත්ම 100 බයිට් දී ලබා ගැනීමට ආකාරය තවත් පිළිතුරක් අදහසක් දී @Brandin පැහැදිලි /dev/urandomභාවිතා head -c 100. මෙය කළ හැකි තවත් ක්‍රමයක් නම් dd:

tr -dc A-Za-z0-9 < /dev/urandom | dd bs=100 count=1 2>/dev/null

මෙම 2>/dev/nullකාලය අවසානයේ දී ddවිධාන ප්රතිදානය "/ ... එළියට වාර්තාවල ... වාර්තා" මර්දනය කිරීමට ය.

මෙම ක්‍රම දෙක අතර සැලකිය යුතු වාසි / අවාසි ගැන මම නොදනිමි.

trආදානය පිළිබඳ පැමිණිලි කිරීමේ ක්‍රම දෙකම පිළිබඳව මට ගැටළුවක් ඇතිවිය. මම සිතුවේ මෙය ද්විමය ආදානය ලැබීමට අකමැති නිසා බවත්, එබැවින් පළමුවෙන් පෙරීමට යෝජනා /dev/randomකළ iconv -c -t USබවත්ය. කෙසේ වෙතත්, ගිලෙස් වෙනස් රෝග විනිශ්චයක් සහ විසඳුමක් යෝජනා කළ අතර එය මට ප්‍රයෝජනවත් වේ:

LC_ALL=C tr -dc A-Za-z0-9 </dev/urandom | dd bs=100 count=1 2>/dev/null

කිසියම් හේතුවක් නිසා iconvවිසඳුම එක් CPU හරයක් උපරිම කරන අතර ප්‍රතිදානයක් නොලැබේ (එය මරා දැමීමට පෙර මම 10 ක් පමණ බලා සිටියෙමි) ...
landroni

මගේ උබුන්ටු 14.04 පද්ධතියේ නිරූපකය libc-bin2.19 මගින් සපයනු ලැබේ . එය එකම
නිරූපකයදැයි

trද්විමය ආදානය සඳහා සහය දක්වයි. කෙසේ වෙතත් වැනි පරාසයක් A-Zස්ථාන සැකසුම් වලට බලපෑම් කළ හැකිය. උත්සාහ කරන්නLC_ALL=C tr …
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

1
Il ගිලස් පොසික්ස් පිරිවිතරයට අනුව එය "ද්විමය ආදානය සඳහා සහය නොදක්වයි". GNU පමණක් trකරන්නේ එය බහු බයිට් වලට කිසිසේත් සහය නොදක්වන බැවිනි (උදා: අවසාන වරට මා එය පරීක්ෂා කළ විට වෙනස් කිරීමේ අවස්ථාව ක්‍රියාත්මක වූයේ සෑම බයිටයකම හයවන බිට් සැකසීමෙනි). වෙනත් පද්ධති (උදා: BSD) බහු බයිට් සඳහා සහය දක්වන අතර අහඹු ආදාන ප්‍රවාහයක් වලංගු බහු බයිට් ප්‍රවාහයක් වීමේ අවස්ථාව බොහෝ කේතීකරණවල ඉතා කුඩා බැවින් මෙය අසාර්ථක වනු ඇත. ඕනෑම මොහොතක GNU විසින් බහු බයිට් සහය එක් කළ හැකි අතර එම අවස්ථාවේදී මෙය අසාර්ථක වනු ඇත. ඇත්ත වශයෙන්ම, සැකසුම LC_ALL=Cඑය නිවැරදි කරනු ඇත.
මාටින් ටුවර්නොයි

ArCarpetsmoker POSIX trහට ද්විමය ආදානය (C පෙදෙසෙහි) සැකසීමට අවශ්‍ය වේ . (හොඳයි, හරි, එය පැහැදිලිවම පවසන්නේ ශුන්‍ය බයිට් සඳහා සහය දැක්විය යුතු බවයි, හිස් නොවන ලිපිගොනු නව රේඛා අක්ෂරයකින් අවසන් නොවන බව නොකියයි, නමුත් ප්‍රායෝගිකව එය සැමවිටම එසේමය.)
ගිලෙස්ගේ SO- නපුරු වීම නවත්වන්න '

5

ඔබට md5හරියටම මෙම අරමුණ ඇති මෙවලම් වලින් එකක් භාවිතා කළ හැකිය . සම්පූර්ණයෙන්ම අහඹු මුරපදයක් සෑදීමේදී ඔබට භාවිතා කළ හැකිය md5pass. එය භාවිතා කිරීමට ඉතා සරල මෙවලමක් වන අතර ඔබට පසුව යථා තත්වයට පත් කළ හැකි එකම මුරපදය තැනීම සඳහා “ලුණු” සමඟ “සාමාන්‍ය පෙළ” භාවිතා කළ හැකිය, නැතහොත් විකල්පයක් ලෙස ඔබට සම්පූර්ණයෙන්ම ලබා ගැනීමට අවශ්‍ය විය හැකිය. අහඹු මුරපදය සෑම විටම. සාමාන්‍ය භාවිතය:

md5pass [password] [salt]

එහිදී passwordඅහඹු string ඉදිකිරීම සඳහා භාවිතා කරන බව තෝරාගත් වචනය saltභාවිතා කිරීමට බයිට් වලින් පැනීම ය. මෙවැනි:

md5pass word

$1$.MUittVW$j.XDTF1QRnxqFdXRUiSLs0

මෙය ඔබට භාවිතා කිරීම සඳහා "අහඹු අනුක්‍රමයක්" මුරපදයක් සාදනු ඇත. ඔබ නැත භාවිතා කරන්නේ නම් salt, පසුව ඔබට මෙම නූලම නැවත ප්‍රතිනිර්මාණය කිරීමට නොහැකි වනු ඇත.

කෙසේ වෙතත් ඔබ saltමේ වගේ දෙයක් භාවිතා කරන්නේ නම් :

md5pass word 512

$1$512$.0jcLPQ83jgszaPT8xzds0

වචනය මුලින් අර්ථ දක්වා ඇත්නම් එකම ලුණු (හෝ පැනීම) සමඟ ඒකාබද්ධව වචනය භාවිතා කරන්නේ නම් ඔබට නැවත ලබා ගත හැකි අනුක්‍රමයක් ඔබට නිර්මාණය කළ හැකිය.


A saltභාවිතා කරන විට, මෙය මුරපද
සාදන්නාගේ

-එය එක් නිෂ්පාදක මුරපදයකට සමාන විය හැකි නමුත් වෙනස වන්නේ එය වාණිජ වැඩසටහනක් හෝ වෙනත් දෙයක් නොවන බැවිනි, මන්ද මෙහි දී ගනුදෙනු කරන ලද md5 මෙවලම්, "md5pass, md5sum, md5sum.textutils" සැලකිලිමත් වන අතර පද්ධතිය ලබා ගත හැකිය. කිසිම වියදමක් නැතිව !!!
විහිළු ජ්‍යෙෂ් r. හරි

මුරපද නිෂ්පාදකයා මගේ මතකයේ තිබුන අතර එය විවෘත මූලාශ්‍ර සහ වාණිජ නොවන වේ.
ලන්ඩ්‍රෝනි

5

APG සමහර ලිනක්ස් බෙදාහැරීම් වල පෙරනිමියෙන් ඇතුළත් කර ඇත.

විශේෂ, සංඛ්‍යාත්මක, ප්‍රාග්ධනය සහ පහළ යන උප කාණ්ඩවල 5 සිට 10 දක්වා ප්‍රමාණයේ මුරපද ජනනය කිරීම සඳහා, විධානය:

apg -MSNCL -m 5 -x 10

සහ ආපසු

@OpVeyhym9
3:Glul
3DroomIc?
hed&Os0
NefIj%Ob3
35Quok}

ඕලන්ඩ්‍රෝනි අදහස් දැක්වූ පරිදි.


1
විශේෂ අක්ෂර රාශියක් අඩංගු අහඹු අකුරු 14 මුරපද ජනනය කිරීමේ විකල්ප මෙන්න:apg -a1 -m14
neuhaus

3

මෙම විධානයන් දෙක පිළිවෙලින් අහඹු මුරපද සහ මුරපද ජනනය කරයි.

shuf --random-source=/dev/urandom --repeat --head-count=20 file_with_characters | tr --delete '\n'

shuf --random-source=/dev/urandom --repeat --head-count=7 file_with_words | tr '\n' ' '

මුරපද උත්පාදක යන්ත්රය සඳහා ඔබට මුරපදය භාවිතා කිරීමට අවශ්ය සියලුම අක්ෂර, එක් පේළියකට එක් අක්‍ෂරයක් සහ හරියටම එක් වරක් බැගින් අඩංගු ගොනු_විත්_ අක්ෂර ඇතුළත් වේ. ගොනුවේ හිස් රේඛා අඩංගු නොවිය යුතු අතර රේඛා නව රේඛා-අවසන් කළ යුතුය.

මුරපද උත්පාදක යන්තයට ඔබට මුරපදය භාවිතා කිරීමට අවශ්‍ය සියලුම වචන, එක් පේළියකට එක් වචනයක් සහ හරියටම එක් වරක් බැගින් අඩංගු ගොනු_විත්_ වචන අවශ්‍ය වේ. ගොනුවේ හිස් රේඛා අඩංගු නොවිය යුතු අතර රේඛා නව රේඛා-අවසන් කළ යුතුය.

--Head-count විකල්පය මුරපදයේ දිග - අක්ෂර වලින් - හෝ මුරපදයෙන් - වචන වලින් දක්වයි.


2

මැකෝස් මත tr වෙත නල / dev / urandom නල මාර්ග ක්‍රියා නොකරන බව මට පෙනී ගියේය. මෙන්න තවත් ක්‍රමයක්:

set="abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
n=6
rand=""
for i in `seq 1 $n`; do
    char=${set:$RANDOM % ${#set}:1}
    rand+=$char
done
echo $rand

මගේ පිළිතුරේ අවසාන උදාහරණය පරීක්ෂා කරන්න. එය tr භාවිතා නොකරයි. unix.stackexchange.com/a/494931/203075
සිබ්රි

2

මම භාවිතා කරන්නේ:

base64 < /dev/urandom | tr -d 'O0Il1+\' | head -c 44

මෙය මට හැකි චරිත 57 ක් ලබා දෙයි. අක්ෂර ( ) ඉවත් කර ගැනීමට අපහසු බැවින් නූල් පිටපත් කළ හැකිය (ඉවත් +කර \) හෝ මුද්‍රණය කර නැවත ටයිප් කළ හැකිය I1lO0.

  • අක්ෂර 44 මට ලබා දෙයි: ලොග් 2 (57 44 )> එන්ට්‍රොපි බිටු 256.64
  • අක්ෂර 22 ක් මට ලබා දෙයි: ලොග් 2 (57 22 )> එන්ට්‍රොපි බිටු 128.32

මම මේකට කැමතියි මොකද:

  • විධානය ටයිප් කිරීමට සරල වන අතර මතක තබා ගත හැකිය
  • එය සම්මත පද්ධති මෙවලම් භාවිතා කරයි - අමතර ද්විමයන් නොමැත
  • බොහෝ අහඹු ලෙස "නාස්ති" නොකරයි (tr 24% ට එදිරිව ලැබෙන අහඹු බිටු වලින් 89% ක් සෘජුවම tr වෙත නල මාර්ග සඳහා භාවිතා කරයි)
  • අක්ෂර 22 සහ 44 යුගල යුගල වශයෙන් බ්‍රේක්පොයින්ට් දෙකක පොදු බලය (ඊටත් වඩා ඉහළින්) යුගලනය කරයි
  • නිමැවුම පහසුවෙන් තෝරාගත හැකි අතර අවම මිනිස් දෝෂ අනුපාතයකින් අලවා මුද්‍රණය කර නැවත ටයිප් කළ හැකිය
  • md5sum / sha1sum වැනි විසඳුම් හෙක්ස් කේතනය කළ (22 සහ 44 වෙනුවට 32 සහ 64).

Https://unix.stackexchange.com/a/230676/9583 වෙත ණය සහ විශේෂයෙන් මගේ ආරම්භක ආනුභාවය සඳහා අදහස්.


ඔබ නම් අවශ්ය සංඛ්යා / විශේෂ අක්ෂර - සාමාන්යයෙන් එහි අංකය, ඔබට ආරක්ෂිතව ඇතුලත් විය නො හැකි නම්, වනු ඇත 1එන්ට්රොපිය අඩු (එක් w / ගණනාවක් ලබා ගැනීමට අලුත් එකක් ජනනය නොමැතිව කරන්නේ එන්ට්රොපිය අඩු). !එන්ට්‍රොපිය අඩු නොකර ඔබට ආරක්ෂිතව එකතු කළ හැකිය . මෙම යෝජනා ක්‍රම කිසිවක් වටිනාකමින් යුත් එන්ට්‍රොපිය වැඩි නොකරයි, නමුත් ජනනය කරන ලද නූල් පැරණි මුරපද අවශ්‍යතාවයන්ට අනුකූල වේ.
අයිරිඩේන්

2

"එක් දෙයක් හොඳින් කරන බොහෝ කුඩා මෙවලම්" පිළිබඳ යුනික්ස් දර්ශනය මෙම අවස්ථාවේ දී ඔබට ඉතා හොඳින් සේවය කරයි.

  • /dev/urandom යනු ප්‍රවාහයකි අහඹු "බයිට්" (මුද්‍රණය කළ නොහැකි අක්ෂරද ඇතුළුව)
  • base64 බයිට් දත්ත කේතනය කරයි [A-Za-z0-9/+] (එය සම්පූර්ණයෙන්ම මුද්‍රණය කළ හැකි)
  • dd තර්ක ලෙස ලබා දී ඇති වෙනස් කිරීම් යෙදවුම් සඳහා ප්‍රතිදානය පිටපත් කරයි (ඒවාට වාරණ ප්‍රමාණය සහ වාරණ ගණන ඇතුළත් විය හැකිය)

OSX

base64     < /dev/urandom | dd bs=1k count=1

ලිනක්ස්

base64 -w0 < /dev/urandom | dd bs=1k count=1

සටහන්:

  • ඔබට අක්ෂරවල උප කුලකයක් අවශ්‍ය නම්, ඔබට පයිප්පයේ විකරණකාරකයක් ඇතුළත් කළ හැකිය.
    • උදා: tr -d '[A-Z/+]'ලොකු අකුරු ඉවත් කිරීමට සහ +සහ/
  • ඔබට එය සැකසිය හැකිය bs (වාරණ ප්‍රමාණය) ඔබට අවශ්‍ය ඕනෑම දිගකට .
  • ලිනක්ස් හි, base64පෙරනිමියෙන් තීරු 76 ක් ඔතා ඇති අතර -w0ඔබට එය අවශ්‍ය නොවන්නේ නම් නැවත සැකසිය යුතුය .

2

මුරපදයක් ජනනය කිරීම සඳහා මගේ සුපුරුදු විධානයට දායක වීමට මම කැමතියි

$ cat /dev/urandom | base64 | head -n 1 |tr -dc '[:alnum:]' |cut -c -13
b0R55751vWW9V

මුරපදයේ දිග වින්‍යාස කිරීමට, කැපුම් විධානයෙහි ඇති අංකය ඔබට අවශ්‍ය දිගට වෙනස් කරන්න, උදාහරණයක් ලෙස අක්ෂර 24

$ cat /dev/urandom | base64 | head -n 1 |tr -dc '[:alnum:]' |cut -c -24
WFBhVHuKbrnRhd5kdWXPzmZG

0 හෝ O, 1 හෝ l අවුල් කිරීමට අවශ්‍ය නැද්ද? එය තවත් එකක් සමඟ පෙරහන් කරන්නtr

$ cat /dev/urandom | base64 | head -n 1 |tr -dc '[:alnum:]' | tr -d '0O1l'|cut -c -24
JuCphwvhrhppD9wVqfpP2beG

මම පෞද්ගලිකව කිසි විටෙකත් මුරපදයේ විශේෂ අක්ෂරවලට වැඩි කැමැත්තක් දක්වන්නේ නැත, ඒ නිසා මම [:alnum:]මගේ මුරපද උත්පාදක යන්ත්‍රය සඳහා පමණක් තෝරා ගනිමි


0

මම secpwgenඇල්පයින් ලිනක්ස් හි පවත්වා ගෙන යන අතර ප්‍රභවයන් මගේ ගිතුබ්හි තබා ගනිමි .

එයට අහඹු නූල් හෝ ඩයිස්වෙයාර් වාක්‍ය නිපදවිය හැකිය:

musl64 [~]$ secpwgen
USAGE: secpwgen <-p[e] | -A[adhsy] | -r | -s[e]> N

PASSPHRASE of N words from Diceware dictionary
  -p    generate passphrase
  -pe   generate enhanced (with symbols) passphrase

SKEY PASSWORD of N words from S/Key dictionary
  -s    generate passphrase
  -se   generate enhanced (with symbols) passphrase

ASCII RANDOM of N elements (at least one option MUST be present)
  -A    Each letter adds the following random elements in output:
    a    alphanumeric characters
    d    decimal digits
    h    hexadecimal digits
    s    special characters
    y    3-4 letter syllables

RAW RANDOM
  -r    output BASE64 encoded string of N random BITS
  -k    output koremutake encoding of N random BITS

අක්ෂර 13 ක අහඹු නූලක් ජනනය කිරීම සඳහා ඔබ භාවිතා කරන්නේ:

musl64 [~]$ secpwgen -Aas 13
----------------
WK5#*V<]M3<CU ;ENTROPY=67.21 bits
----------------
INFO: destroying random number generator.
INFO: zeroing memory.

musl64 [~]$ secpwgen -Aa 13
----------------
GP0FIEBM9Y3BT ;ENTROPY=67.21 bits
----------------
INFO: destroying random number generator.
INFO: zeroing memory.

මුරපදයක් මතක තබා ගැනීමට පරිශීලකයින්ට ඩයිස්වෙයාර් වාක්‍ය ඛණ්ඩ භාවිතා කරන්න:

musl64 [~]$ secpwgen -p 5
----------------
wq seen list n8 kerr  ;ENTROPY=65.00 bits
----------------
INFO: destroying random number generator.
INFO: zeroing memory.

මම පෞද්ගලිකව කැමතියි:

musl64 [~]$ secpwgen -r 512
----------------
h62lL7G4gwh3/j9c7YteQvVXoqJrQKKPWVR3Lt7az36DcfWZWtUgBT19iwmJBwP4UahNzPe7qYD7OcklUFpCzQ== ;ENTROPY=512.00 bits
----------------
INFO: destroying random number generator.
INFO: zeroing memory.

0

ඉතා ආරක්ෂිත මුරපදයක් සඳහා මගේ මාර්ගය (මෙහි 16 pw දිග):

cat /dev/urandom | tr -cd [:graph:]|head -c 16

උදාහරණ ප්‍රති result ලය:

jT@s_Nx]gH<wL~W}

හෝ විකල්පයක් ලෙස, බහු මුරපද ජනනය කිරීමට:

cat / dev / urandom | tr -cd [: graph:] | fold -w 16 | head -6

උදාහරණ ප්‍රති result ලය:

7ck%G7'|f&}_8(]s
<?*]E.CG[NB'gK#A
:tF-WPTOa3!i7S(h
2xy(>=%3=Kb1B$`6
*98Lf{d?Jzb}6q1\
E7uCEAN2Hz]]y|5*

ටිකක් අඩු ආරක්ෂිත (කුඩා අක්ෂර කට්ටලය):

cat /dev/urandom |base64 -w 0|fold -w 16|head -6

උදාහරණ ප්‍රති result ලය:

rJqYxYZLOTV+A45w
PUKQ+BoBf6yfZw5m
+LRfpsN9CsLRiN8V
yMS6zDpL6NHmG17s
yTUWPG7Rum97schi
cognvjVwaKaAyPRK

0

මෙතෙක් ලබා දී ඇති පිළිතුරු කිසිවක් සැබවින්ම හරස් මෙහෙයුම් පද්ධතියක් නොවේ.

ප්‍රධාන අඩුපාඩු ස්ථාන අර්ථ දැක්වීම (MacOS නඩුව) සහ tr අක්ෂරවල අන්තරයන් හඳුනා ගැනීමට නොහැකි වීම (සොලාරිස් නඩුව).

ඔබ shlibs උත්සාහ කළ යුතුයි . එය නැවුම් සහ සැබවින්ම හරස් මෙහෙයුම් පද්ධතියකි. අහඹු නූලක් ලබා ගැනීම සඳහා වන කේතය shlibs str005(./shlibs str005 ) වේ.

අහඹු ලෙස අක්ෂර 50 කින් යුත් නූලක් ලබා ගන්න, පුන්ටියුෂන් ඇතුළත් කරන්න, අංක බැහැර කරන්න:

shlibs str005 50 -p -xd

-1

මෙය සාක්ෂාත් කර ගැනීම සඳහා ඉතා පහසු සහ සරල (බොහෝ විට ඔබ සොයනවාට වඩා සරල) ක්‍රමයක් වනුයේ යම් පරාසයක අහඹු සංඛ්‍යාවක් උත්පාදනය කිරීම, එම සංඛ්‍යාව එහි සමාන ASCII අක්ෂරයට පරිවර්තනය කිරීම සහ එය නූලක අවසානයට එකතු කිරීමයි. .

පයිතන්හි මූලික උදාහරණයක් මෙන්න:

import random # import random library  
passFile = open("passwords.txt", 'w') # create file passwords.txt
passNum = int(input("Number of passwords: ")) # get number of  passwords
passLength = int(input("Password length: ")) # get length of passwords  
for i in range(passNum):
    password = "" # reset password
    for i in range(passLength):
        num = random.randint(65, 122) # get random number
        while num in range(91, 97): # Don't include punctuation
            num = random.randint(65, 122)
        password += chr(num) # add character to current password 
    passFile.write(password + "\n") # add current password to file  
passFile.close() # close file

සංස්කරණය කරන්න: අදහස් එකතු කිරීම සහ බහු මුරපද ජනනය කිරීම සඳහා කේතයක් එකතු කර ඒවා ගොනුවකට ලිවීම


3
පයිතන්ගේ බලය ලබා දෙන්නේ නම් මම එය මේ ආකාරයෙන් නොකරමි. මුරපදයක් සඳහා වලංගු වන සියලුම අක්ෂර අඩංගු නූලකට සම්බන්ධ වීම සහ අක්ෂර තේරීමට අහඹු ලෙස භාවිතා කිරීම වඩා පහසු වනු ඇත.
මයික් මැක් මහෝන්


-2

මම මෙම විධානයට කැමතියි:

date +%s | sha256sum | base64 | head -c 12

1
මම වඩාත් අහඹු නැනෝ තත්පර ප්‍රවේශයක් භාවිතා කිරීමට කැමැත්තෙමි: date +%N ඔබ ස්ක්‍රිප්ට් එකක බොහෝ පරිශීලකයින් සහ මුරපද ජනනය කරන්නේ නම්, තත්පර බොහෝ දෙනෙකුට හෝ සියලු දින විධාන සඳහා එක හා සමාන විය හැකි අතර එමඟින් සමාන මුරපද නිපදවනු ඇත.
ජෝන් නගරාධිපති

1
@JohnMayor: මෙම ප්රවේශය වඩාත් ශක්තිමත් වේ: dd if=/dev/random bs=512 count=1?
ඉයුජන් කොන්කොව්

8
මෙම පිළිතුරු ඉතා භයානක ය! අනාවැකි කීමට පහසු දන්නා බීජයකින් ඔබ මුරපදය (ය) ජනනය කරයි. පසුගිය වසරවල මෙම ක්‍රමය භාවිතා කර ජනනය කරන ලද සියලුම මුරපද මට ජනනය කළ හැකි අතර තිරිසන් බලහත්කාරය සඳහා මෙම ලැයිස්තුව භාවිතා කළ හැකිය.
ගලා යන්න

-4

මම යන්නේ, http://passwordsgenerator.net/ වෙත අහඹු අක්ෂර 2048 ක් දක්වා උත්පාදනය කිරීමට, ඉහළ අකුරු, කුඩා අකුරු, 0 සිට 9 දක්වා ඉලක්කම්, විරාම ලකුණු හෝ ඕනෑම සංයෝජනයක් තෝරා ගැනීමට ඉඩ සලසයි.


2
නොබැඳි ජනනය කරන ලද නූල් වඩාත් සුදුසු බව පැහැදිලි කිරීම සඳහා මම ප්‍රශ්නය පැහැදිලි කර ඇත්තෙමි. වෙබ් අඩවියක කෙලින්ම මුරපදයක් ජනනය කිරීම, විශේෂයෙන් සම්බන්ධතාවය HTTPS නොවේ නම් (ඔබගේ පිළිතුරෙහි මෙන්) ආරක්ෂිත නොවේ.
landroni

1
අහඹු මුරපදයක් අන්තර්ජාලයෙන් ලබා ගැනීම දර්ශනීය ලෙස මෝඩ හා බොළඳ ය. යම් සේවාවක් හෝ වෙබ් අඩවියක් සඳහා ඔබ භාවිතා කරන මුරපදයක් සහ ඔබ පිළිබඳ අද්විතීය පුද්ගලික තොරතුරු (IP ලිපිනය, බ්‍රව්සරය / පරිසර තොරතුරු) යමෙක් දැන් දනී. මෙම වෙබ් අඩවියට දැන් ඔබ ගැන එකතු කරන ලද වෙනත් දත්ත සමඟ තොරතුරු හරස් යොමු කළ හැකිය. උදාහරණයක් ලෙස, ඔබ වරක් තැපැල් ලැයිස්තුවකට පළ කළ විට, ඔබගේ IP ලිපිනය තැපැල් ශීර්ෂයේ ඇත, එබැවින් අපට දැන් මුරපදයක්, නමක් සහ ඊමේල් ලිපිනයක් ඇත ... ඔබ සැබවින්ම ඔබගේ මුරපද සමඟ අහඹු ආගන්තුකයන් විශ්වාස කරයි.
මාටින් ටුවර්නොයි
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.