የዘፈቀደ ቁጥር ጀነሬተር
አማራጮች
ውጤት
ቴክኒካዊ ዝርዝሮች
የዘፈቀደ ቁጥር ጀነሬተር እንዴት እንደሚሰራ
መሣሪያው ምን ያደርጋል
የዘፈቀደ ቁጥር ጀነሬተር የWeb Crypto API (crypto.getRandomValues) በመጠቀም ክሪፕቶግራፊያዊ ጠንካራ የዘፈቀደ ኢንቲጀሮች ወይም የተንሳፋፊ-ነጥብ ቁጥሮችን ያመነጫል። ሞዱሎ ባይያስን ለማስወገድ የrejection sampling ዘዴን ይጠቀማል፣ በማንኛውም የተገለጸ ክልል ላይ እኩል ስርጭት እንዲኖር ያረጋግጣል። ነጠላ እሴቶችን ወይም በቡድን የዘፈቀደ ቁጥሮችን በተቀናቃኝ ዝቅተኛ፣ ከፍተኛ እና የትክክለኛነት (precision) ቅንብሮች ማመንጨት ይችላሉ።
የተለመዱ የገንቢ አጠቃቀም ሁኔታዎች
ገንቢዎች ለደህንነት ተጋላጭ ሥራዎች እንደ ሊገመቱ የማይችሉ የሴሽን ቶከኖች፣ nonces፣ የሎተሪ ምርጫዎች ወይም ከዳታሴቶች የዘፈቀደ ናሙና መውሰድ ያሉ ሥራዎች ላይ ክሪፕቶግራፊያዊ የዘፈቀደ ቁጥር ጀነሬተሮችን ይጠቀማሉ። የጨዋታ ገንቢዎች ፍትሃዊነት ሲጠበቅ ለዳይስ ጥልቀት እና ለፕሮሲጀራል ፍጠር ይጠቀሙበታል። QA ኢንጂነሮች ለfuzz testing የዘፈቀደ የሙከራ ግብዓቶችን ያመነጫሉ፣ የዳታ ሳይንቲስቶችም ተደጋጋሚነት ካልተፈለገ ለዘፈቀደ ናሙና መውሰድ ይጠቀሙበታል።
የውሂብ ቅርጾች፣ አይነቶች ወይም ልዩነቶች
መሣሪያው በማንኛውም ክልል (ገደቦቹ ጨምሮ) ውስጥ የኢንቲጀር ማመንጨትን እና በተቀናቃኝ የዲሲማል ትክክለኛነት የተንሳፋፊ-ነጥብ ማመንጨትን ይደግፋል። ክልሉ የዘፈቀደ ምንጩን የውጤት ቦታ በእኩል ሲከፍል ካልቻለ ሞዱሎ ባይያስ እንዳይፈጠር የrejection sampling እነዚያን እሴቶች ይጥላል። የመሠረታዊው ኤንትሮፒ ከኦፕሬቲንግ ሲስተሙ CSPRNG (በWindows ላይ CryptGenRandom፣ በUnix ላይ /dev/urandom) ይመጣል፣ እና በብራውዘሩ Web Crypto API በኩል ይቀርባል።
የተለመዱ ስህተቶች እና የጠርዝ ሁኔታዎች
ክሪፕቶግራፊያዊ የዘፈቀደነት ከMath.random() ይዘገያል እና እንደ ፕሌይሊስት ማቀላቀል ያሉ ደህንነት ያልሆኑ አጠቃቀሞች ላይ አያስፈልግም። የrejection sampling በንድፈ ሀሳብ ለተለያዩ አስቸጋሪ ክልሎች ብዙ ጊዜ ሊዞር ይችላል፣ ግን በተግባር ይህ እጅግ አነስተኛ ነው። በብራውዘር የተፈጠሩ የዘፈቀደ ቁጥሮች ለተደጋጋሚነት በዘር (seed) ሊጀምሩ አይችሉም — ለሙከራ የሚያስፈልጉ የተወሰኑ ተከታታዮች ካስፈለጉ በዘር የሚጀምር PRNG ይጠቀሙ። ከፍተኛው ደህንነቱ የተጠበቀ የኢንቲጀር ክልል በJavaScript የNumber.MAX_SAFE_INTEGER (2^53 - 1) ይገደባል።
ይህን መሣሪያ ከኮድ ጋር መቼ መጠቀም እንደሚገባ
ለአንድ ጊዜ ውሳኔ፣ ለእጅ ሙከራ ወይም የራስዎ አተገባበር በተጠበቁ ክልሎች ውስጥ እሴቶችን እንደሚያመነጭ ለማረጋገጥ ፈጣን እና ያልተዛባ የዘፈቀደ ቁጥር ሲፈልጉ ይህን የብራውዘር መሣሪያ ይጠቀሙ። ለምርት አጠቃቀም በኮድዎ ውስጥ crypto.getRandomValues() በቀጥታ ይጠሩ ወይም ከመተግበሪያዎ የስህተት አስተናጋጅነት እና ሎግ ማድረግ ጋር የሚዋሃዱ የቋንቋ-ተወላጅ CSPRNG ተግባራትን (secrets module በPython፣ SecureRandom በJava) ይጠቀሙ።