ইউইউডি কতটা অনন্য?


449

কোনও কিছু অনন্যরূপে সনাক্ত করার জন্য ইউইউডি ব্যবহার করা কতটা নিরাপদ (আমি এটি সার্ভারে আপলোড করা ফাইলগুলির জন্য ব্যবহার করছি)? আমি এটি বুঝতে হিসাবে এটি এলোমেলো সংখ্যার উপর ভিত্তি করে based যাইহোক, আমার কাছে মনে হচ্ছে যে যথেষ্ট সময় দেওয়া হয়েছে, শেষ পর্যন্ত খাঁটি সুযোগের মাধ্যমে এটি নিজেই পুনরাবৃত্তি করবে। এই সমস্যাটি নিরসনের জন্য আরও ভাল সিস্টেম বা কোনও ধরণের বিন্যাস রয়েছে?


11
"যথেষ্ট সময়" :) বৃহৎ যথেষ্ট মান জন্য

91
"ইউইউডি কতটা অনন্য?" আমি সর্বজনীন অনন্য, বিশ্বাস করি। ;)
মাইলস

29
এবং আপনি যদি শুক্রের বিকাশের পরিকল্পনা না করেন তবে একটি জিইউডি যথেষ্ট হবে।
স্কেফম্যান

1
আরও বিশদ এবং জেনারেটর এখানে: অনলাইন ইউইড জেনারেটর
ডেভ

2
"অনন্য" অর্থ কখনই সংঘর্ষ হয় না । এটির সংঘর্ষের কোনও সম্ভাবনা থাকলে এটি অনন্য নয় । সুতরাং সংজ্ঞা অনুসারে, ইউইউডি অদ্বিতীয় এবং নিরাপদ নয় যদি আপনি সংঘর্ষের সম্ভাবনা নির্বিশেষে সম্ভাব্য সংঘর্ষের জন্য প্রস্তুত থাকেন। অন্যথায়, আপনার প্রোগ্রামটি কেবল ভুল। আপনি ইউইউডিটিকে "প্রায় অনন্য" হিসাবে বলতে পারেন তবে এর অর্থ এটি "অনন্য" নয়।
ইনিল

উত্তর:


443

খুব নিরাপদ:

একটি উল্কাপিণ্ডের দ্বারা প্রদত্ত ব্যক্তির বার্ষিক ঝুঁকিটি 17 বিলিয়নতে একটি সম্ভাবনা বলে অনুমান করা হয় যার অর্থ সম্ভাবনা প্রায় 0.00000000006 (6 × 10 −11 ), কয়েক লক্ষ ট্রিলিয়ন ইউইউডি তৈরির প্রতিক্রিয়া সমতুল্য এক বছরে এবং একটি সদৃশ অন্য কথায়, পরের 100 বছরের জন্য প্রতি সেকেন্ডে 1 বিলিয়ন ইউইউডি তৈরির পরে, কেবলমাত্র একটি নকল তৈরির সম্ভাবনা প্রায় 50% হবে।

সতর্কীকরণ:

যাইহোক, এই সম্ভাব্যতাগুলি কেবল তখনই থাকে যখন ইউআইডিগুলি পর্যাপ্ত এনট্রপি ব্যবহার করে তৈরি করা হয়। অন্যথায়, নকলগুলির সম্ভাবনা উল্লেখযোগ্যভাবে বেশি হতে পারে, যেহেতু পরিসংখ্যান বিচ্ছিন্নতা কম হতে পারে। বিতরণকৃত অ্যাপ্লিকেশনগুলির জন্য যেখানে অনন্য শনাক্তকারীর প্রয়োজন হয়, যাতে অনেক ডিভাইস থেকে ডেটা একত্রিত হয়ে গেলেও ইউআইডিগুলি সংঘর্ষ না ঘটে, প্রতিটি ডিভাইসে ব্যবহৃত বীজ এবং জেনারেটরগুলির এলোমেলোতা অবশ্যই অ্যাপ্লিকেশনটির জন্য নির্ভরযোগ্য হতে হবে। যেখানে এটি সম্ভবপর নয়, আরএফসি 4122 পরিবর্তে একটি নেমস্পেসের বৈকল্পিকটি ব্যবহারের পরামর্শ দেয়।

উত্স: সর্বজনীন স্বতন্ত্র শনাক্তকারীদের উইকিপিডিয়া নিবন্ধের নকল বিভাগের র্যান্ডম ইউইউডি সম্ভাব্যতা (লিঙ্কটি বিভাগটি পুনর্নির্মাণের আগে ডিসেম্বর 2016 থেকে একটি সংশোধনের দিকে নিয়ে যায়)।

একই ইউনিভার্সাল অনন্য শনাক্তকারী নিবন্ধ, সংঘর্ষে একই বিষয়ে বর্তমান বিভাগটি দেখুন ।


22
আমি উইকিপিডিয়া থেকে এই অংশটি পছন্দ করি: তবে, ইউডিউডিগুলি পর্যাপ্ত এনট্রোপি ব্যবহার করে তৈরি করা হয় তখনই এই সম্ভাবনাগুলি থাকে। অন্যথায়, নকলগুলির সম্ভাবনা উল্লেখযোগ্যভাবে বেশি হতে পারে, যেহেতু পরিসংখ্যান বিচ্ছিন্নতা কম হতে পারে। সুতরাং এই বাক্যটি নকল করার আসল সুযোগটি কী। আমরা কম্পিউটারে আসল এলোমেলো সংখ্যা তৈরি করতে পারি না, পারি কি?
ম্যান

6
প্রকৃতপক্ষে, অনেকগুলি কাজ এন্টারোপি ("রিয়েল এলোমেলোতা") উপস্থাপনের উপায়গুলি সন্ধান করতে চলেছে, আমি মনে করি আপনি এটিকে কল করবেন) এলোমেলো সংখ্যা API গুলি হিসাবে সম্ভব। দেখুন en.wikipedia.org/wiki/Entropy_%28computing%29
broofa

4
এটি আসলে আমি কল্পনা করার চেয়ে সংঘর্ষের উচ্চতর সম্ভাবনা। আমার জন্মদিনের প্যারাডক্স, আমার ধারণা।
ক্যামেরন

আপনি কি নিশ্চিত করতে পারেন যে ইউইউডি ব্যবহার করা কোনও অ্যাপ্লিকেশন কার্যকর করার মধ্যে নিরাপদ হবে? (যেমন একটি অজগর স্ক্রিপ্ট)
জর্জ স্পে

দুর্দান্ত উদাহরণ ...: ডি
নটলুজ

151

যদি "যথেষ্ট সময় দেওয়া হয়" এর অর্থ যদি আপনার 100 বছর হয় এবং আপনি সেগুলি প্রতি সেকেন্ডে এক বিলিয়ন হারে তৈরি করেন তবে হ্যাঁ, আপনার 100 বছর পরে সংঘর্ষ হওয়ার 50% সম্ভাবনা রয়েছে।


185
তবে কেবলমাত্র এই আইডিগুলির জন্য 256 এক্সাবাইট স্টোরেজ ব্যবহার করার পরে।
বব আমান

16
মজার বিষয় হ'ল, আপনি একপর্যায়ে 2 টি জেনারেট করতে পারেন যা অবশ্যই অজানা, ভাগ্য এবং divineশ্বরিক হস্তক্ষেপের মনের-বিস্ময়কর স্তরে রয়েছে, তবুও অটুট প্রতিকূলতার পরেও এটি সম্ভব! : ডি হ্যাঁ, তা হবে না। যখন আপনি একটি সদৃশ তৈরি করেছেন তখন সেই মুহুর্তটির কথা চিন্তা করার জন্য বলার জন্য! স্ক্রিনশট ভিডিও!
scalabl3

4
স্বতন্ত্রতা নিখুঁতভাবে এলোমেলো কারণে? বা অন্য কারণ আছে? (যেমন টাইম স্ট্যাম্প, আইপি, ইত্যাদি)
ওয়েশি জেং

15
@Tahaan এলোমেলো মানে কি তা নয়। এর অর্থ "সম্পূর্ণ অপ্রত্যাশিত" নয় - সাধারণত তারা একরকম বিতরণ অনুসরণ করে। আপনি যদি 10 টি কয়েন ফ্লিপ করেন তবে 2 টি মাথা পাওয়ার পরে, তার পরে 3 টি লেজ পরে 5 টি মাথা আসার সুযোগ খুব কম (2 ^ -10, প্রায় 0.001)। এটি সত্যই এলোমেলো, তবে আমরা অবশ্যই একটি নির্দিষ্ট ফলাফল পাওয়ার সুযোগটি জানতে পারি । আমরা শুধু আগাম বলতে পারছে না যে এটা হবে ঘটে।
রিচার্ড রাস্ট 15

5
এই বাস্তবায়নটি কী ভুল করেছে তা কেবল ব্যাখ্যা করার জন্য, তারা একটি সংস্করণ 1 ইউইউডি ব্যবহার করছে, যা এর স্বতন্ত্রতার জন্য টাইমস্ট্যাম্প এবং ম্যাক ঠিকানার সংমিশ্রণের উপর নির্ভর করে। তবে আপনি যদি ইউইউডিগুলি দ্রুত তৈরি করেন তবে টাইমস্ট্যাম্পটি এখনও বাড়বে না। এই দৃশ্যে, আপনার ইউআইডি প্রজন্মের অ্যালগরিদমটি ব্যবহৃত শেষ টাইমস্ট্যাম্পটি ট্র্যাক করবে এবং এটি 1 দিয়ে বাড়িয়ে নেবে বলে মনে করা হচ্ছে তারা স্পষ্টভাবে এই পদক্ষেপ নিতে ব্যর্থ হয়েছিল। তবে অল্প সময়ের মধ্যে একই মেশিন দ্বারা সঠিকভাবে উত্পন্ন সমস্ত সংস্করণ 1 ইউইউডিগুলি সুস্পষ্ট মিলগুলি প্রদর্শন করবে তবে তবুও অনন্য হওয়া উচিত।
বব আমান

103

একাধিক প্রকারের ইউআইডি রয়েছে, সুতরাং আপনি কী ধরণের (যে ইউআইডি স্পেসিফিকেশনগুলি "সংস্করণ" বলে) তার উপর "কতটা নিরাপদ" নির্ভর করে depends

  • সংস্করণ 1 হ'ল সময় ভিত্তিক ম্যাকের ঠিকানা ইউআইডি। 128-বিটসটিতে নেটওয়ার্ক কার্ডের ম্যাক ঠিকানার জন্য 48-বিট রয়েছে (যা অনন্যভাবে নির্মাতার দ্বারা নির্ধারিত হয়) এবং 100 ন্যানোসেকেন্ডের রেজোলিউশন সহ 60-বিট ঘড়ি। এই ঘড়িটি 3603 ADমোড়ানো তাই এই ইউআইডিগুলি অন্ততপক্ষে অবধি নিরাপদ থাকবে (যদি না আপনার প্রতি সেকেন্ডে 10 মিলিয়নের বেশি নতুন ইউইউডি প্রয়োজন হয় বা কেউ আপনার নেটওয়ার্ক কার্ড ক্লোন করে না)। আমি "কমপক্ষে" বলছি কারণ ঘড়িটি 15 ই অক্টোবর 1582-এ শুরু হয়, সুতরাং ঘড়িটি মোছার প্রায় 400 বছর পরে আপনার ডুপ্লিকেশন হওয়ার খুব কম সম্ভাবনা রয়েছে।

  • সংস্করণ 4 হ'ল এলোমেলো সংখ্যা ইউআইডি। এখানে ছয়টি স্থির বিট রয়েছে এবং বাকি ইউআইইউডের এলোমেলোতার 122-বিট রয়েছে। দেখুন উইকিপিডিয়া বা অন্যান্য বিশ্লেষণ যে বর্ণনা কিভাবে খুব অসম্ভাব্য সদৃশ।

  • সংস্করণ 3 এমডি 5 ব্যবহার করে এবং সংস্করণ 5 এলোমেলো বা সিউডো-র্যান্ডম নম্বর জেনারেটরের পরিবর্তে, 122-বিট তৈরি করতে SHA-1 ব্যবহার করে। সুতরাং সুরক্ষার দিক থেকে এটি সংস্করণ 4 স্ট্যাটিস্টিকাল ইস্যু হওয়ার মতো (যতক্ষণ আপনি এটি নিশ্চিত করেন যে ডাইজেস্ট অ্যালগরিদম কী প্রক্রিয়াকরণ করছে তা সর্বদা অনন্য)

  • সংস্করণ 2 সংস্করণ 1 এর অনুরূপ, তবে একটি ছোট ঘড়ির সাথে তাই এটি প্রায় খুব তাড়াতাড়ি মোড়ানো হতে চলেছে। সংস্করণ 2 ইউআইডিগুলি যেহেতু ডিসিই-র জন্য, তাই আপনার এটি ব্যবহার করা উচিত নয়।

সুতরাং সমস্ত ব্যবহারিক সমস্যার জন্য তারা নিরাপদ। যদি আপনি এটিকে সম্ভাব্যতাগুলিতে ছেড়ে দিতে অস্বস্তি হন (যেমন আপনার জীবদ্দশায় একটি বৃহত্তর গ্রহাণু দ্বারা পৃথিবী ধ্বংস হয়ে যাওয়ার বিষয়ে উদ্বিগ্ন ব্যক্তি আপনার প্রকারের) তবে কেবলমাত্র আপনি সংস্করণ 1 ইউআইউডি ব্যবহার করেছেন তা নিশ্চিত করুন এবং এটি অনন্য হওয়ার নিশ্চয়তা রয়েছে ( আপনার জীবদ্দশায়, আপনি যদি 3603 খ্রিস্টাব্দে অতীত বাঁচার পরিকল্পনা না করেন)।

তাহলে কেন সকলেই কেবল সংস্করণ 1 ইউআইডি ব্যবহার করে না? এটি কারণ সংস্করণ 1 ইউইউডিগুলি মেশিনটিতে তৈরি হয়েছিল তার ম্যাক ঠিকানা প্রকাশ করে এবং তারা অনুমানযোগ্য হতে পারে - দুটি ইউটিউইড ব্যবহার করে অ্যাপ্লিকেশনটির জন্য সুরক্ষা জড়িত থাকতে পারে।


1
একটি সংস্করণ 1 এ ডিফল্ট করা যখন ইউইউডি একই ব্যক্তির দ্বারা বহু লোকের জন্য উত্পন্ন হয় তখন গুরুতর সমস্যা হয়। 4 ইউআইডি সংস্করণটি আমার ডিফল্ট কারণ আপনি যে কোনও ভাষা বা প্ল্যাটফর্মের (জাভাস্ক্রিপ্ট সহ) একটি উত্পন্ন করতে দ্রুত কিছু লিখতে পারেন।
জাস্টিন বোজনিয়ার

1
@ হোলেন ভালভাবে ব্যাখ্যা করেছেন! তবে কি এতো বাড়াবাড়ি করা দরকার?
দিনোপ পলোলি

1
তাত্ত্বিকভাবে , এটি অনন্যভাবে নির্মাতার দ্বারা নির্ধারিত হয়।
অরেঞ্জডগ

4
ডুপ্লিকেটের মুখোমুখি হওয়ার জন্য একজনকে এক সেকেন্ডে 1 মিলিয়ন সংস্করণ 1 ইউআইডি তৈরি করতে হবে না; সিকোয়েন্স সংখ্যাটি ওভারফ্লো করার জন্য একটিকে কেবল একটি "টিক" স্প্যানের মধ্যে কেবল 16,384 ইউআইডিগুলির একটি ব্যাচ তৈরি করতে হবে। আমি এটি এমন একটি বাস্তবায়নের সাথে দেখেছি যা নির্বিঘ্নে, একটি ঘড়ির উত্সে (1) এর স্তরের গ্রানুলারিটি ছিল এবং (2) একঘেয়ে হওয়ার নিশ্চয়তা ছিল না (সিস্টেমের ঘড়িগুলি নয়)। আপনি যার ইউআইডি প্রজন্মের কোডটি ব্যবহার করেন সে সম্পর্কে সতর্ক থাকুন এবং সময় ভিত্তিক ইউআইডি জেনারেটরগুলির সাথে বিশেষত সতর্ক হন। এগুলি সঠিকভাবে পাওয়া শক্ত, সুতরাং তাদের ব্যবহারের আগে তাদের পরীক্ষা লোড করতে বাধ্য করুন।
মাইক স্ট্রোবেল

উত্পন্ন ভি 4 ইউআইডি-র মধ্যে সময়কাল কী আরও সংঘর্ষের সম্ভাবনা নিয়ে যেতে পারে? আমি বোঝাচ্ছি ভারী ট্র্যাফিক অ্যাপ্লিকেশনটির অর্থ, ধরুন যে একই সময়ে কয়েক হাজার ইউউইড উত্পন্ন হয়েছিল, তুলনামূলকভাবে দীর্ঘ সময়ের মধ্যে একই পরিমাণ ইউয়ুইড উত্পন্ন হলে তার চেয়ে বেশি সংঘর্ষের সম্ভাবনা রয়েছে কি?
জোনাথন

18

এর উত্তরটি মূলত ইউআইডি সংস্করণে নির্ভর করতে পারে।

অনেক ইউআইডি জেনারেটর একটি সংস্করণ 4 এলোমেলো নম্বর ব্যবহার করে। যাইহোক, এর মধ্যে অনেকে সিউডো একটি এলোমেলো সংখ্যা জেনারেটর উত্পাদন করে।

যদি অল্প সময়সীমার সাথে দুর্বল বীজযুক্ত পিআরএনজি ইউইউডি উত্পন্ন করতে ব্যবহৃত হয় আমি বলব এটি মোটেও নিরাপদ নয়।

সুতরাং, এটি তৈরির জন্য ব্যবহৃত অ্যালগরিদমগুলির মতোই এটি নিরাপদ।

ফ্লিপ দিকে, যদি আপনি এই প্রশ্নের উত্তর জানেন তবে আমি মনে করি একটি সংস্করণ 4 ইউইড ব্যবহার করা খুব নিরাপদ হওয়া উচিত। আসলে আমি এটি একটি নেটওয়ার্ক ব্লক ফাইল সিস্টেমে ব্লক সনাক্ত করতে ব্যবহার করছি এবং এখনও পর্যন্ত সংঘর্ষ হয়নি।

আমার ক্ষেত্রে, আমি যে পিআরএনজিটি ব্যবহার করছি তা হ'ল একটি মার্সিন টুইস্টার এবং আমি যেভাবে বীজ বুনেছি তা সম্পর্কে / সাবধানতা অবলম্বন করছি যা / ডিভ / ইউরানডম সহ একাধিক উত্স থেকে প্রাপ্ত। মার্সেন টুইস্টার এর সময়কাল 2 ^ 19937 - 1 রয়েছে। আমি পুনরাবৃত্তি ইউউইডটি দেখার আগে এটি খুব দীর্ঘ সময় হতে চলেছে।


14

উইকিপিডিয়া থেকে উদ্ধৃতি :

সুতরাং, যে কেউ একটি ইউইউডি তৈরি করতে এবং যুক্তিসঙ্গত আত্মবিশ্বাসের সাথে এমন কিছু সনাক্ত করতে ব্যবহার করতে পারেন যা সনাক্তকারী কখনও অন্য কারও জন্য অনিচ্ছাকৃতভাবে ব্যবহার করতে পারবেন না

এটি আসলে এটি কতটা নিরাপদ সে সম্পর্কে বেশ ভাল বিশদতে ব্যাখ্যা করতে চলেছে। সুতরাং আপনার প্রশ্নের উত্তর দিতে: হ্যাঁ, এটি যথেষ্ট নিরাপদ।


9

আমি অন্যান্য উত্তর সাথে সম্মত। ইউআইডিগুলি প্রায় সমস্ত ব্যবহারিক উদ্দেশ্যে 1 এবং আপনার পক্ষে অবশ্যই নিরাপদ ।

তবে ধরুন (অনুমানের) যে তারা তা নয়।

এই সমস্যাটি নিরসনের জন্য আরও ভাল সিস্টেম বা কোনও ধরণের বিন্যাস রয়েছে?

এখানে কয়েকটি পদ্ধতির উপায় রয়েছে:

  1. আরও বড় ইউআইডি ব্যবহার করুন। উদাহরণস্বরূপ, 128 র্যান্ডম বিটের পরিবর্তে 256 বা 512 বা ... ব্যবহার করুন প্রতিটি বিট আপনি টাইপ -4 স্টাইলের ইউইউডি সংযুক্তির সংঘর্ষের সম্ভাবনা দেড় দ্বারা হ্রাস করবে, ধরে নিবেন আপনার এনট্রপি 2 এর একটি নির্ভরযোগ্য উত্স আছে ।

  2. একটি কেন্দ্রীভূত বা বিতরণ পরিষেবা তৈরি করুন যা ইউইউডি উত্পন্ন করে এবং এটি জারি করা প্রত্যেকটি রেকর্ড করে। প্রতিবার এটি নতুন তৈরি করে, এটি পরীক্ষা করে যে ইউইউডি আগে কখনও জারি করা হয়নি। এই ধরণের পরিষেবা বাস্তবায়নের জন্য প্রযুক্তিগতভাবে সরাসরি-অগ্রসর হবে (আমি মনে করি) যদি আমরা ধরে নিই যে পরিষেবাটি চালাচ্ছিল লোকেরা একেবারে বিশ্বাসযোগ্য, অবিচ্ছেদ্য, ইত্যাদি। দুর্ভাগ্যক্রমে, তারা না ... বিশেষত যখন সরকারের সুরক্ষা সংস্থাগুলি হস্তক্ষেপের সম্ভাবনা থাকে। সুতরাং, এই পদ্ধতির সম্ভবত অবাস্তব, এবং বাস্তব বিশ্বে 3 অসম্ভব হতে পারে ।


1 - যদি ইউইউডিগুলির স্বতন্ত্রতা নির্ধারণ করে যে পারমাণবিক ক্ষেপণাস্তাগুলি আপনার দেশের রাজধানী শহরে চালু হয়েছে কিনা, আপনার অনেক সহকর্মী নাগরিকরা "সম্ভাবনা অত্যন্ত কম" দ্বারা নিশ্চিত হতে পারবেন না। সুতরাং আমার "প্রায় সব" যোগ্যতা।

2 - এবং আপনার জন্য এখানে একটি দার্শনিক প্রশ্ন। সত্যিই কি এলোমেলো কিছু হয়? তা না হলে আমরা কীভাবে জানব? আমরা জানি যে মহাবিশ্ব এটি একটি সিমুলেশন জানি? এমন কি এমন Godশ্বর আছেন যিনি কোনও পরিণতি পরিবর্তনের জন্য পদার্থবিজ্ঞানের বিধিবিধানগুলি "কল্পনা" করতে পারেন?

3 - কেউ যদি এই সমস্যা সম্পর্কে কোনও গবেষণা কাগজ সম্পর্কে জানেন তবে মন্তব্য করুন please


আমি কেবল এটি উল্লেখ করতে চাই যে পদ্ধতিটি 2 নম্বরটি মূলত ইউইউডি ব্যবহারের মূল উদ্দেশ্যকে পরাস্ত করে এবং আপনি সেই সময়ে কেবল একটি ক্লাসিক নম্বরযুক্ত আইডি ব্যবহার করতে পারেন।
পেটর ভেনেক

আমি একমত নই ক্রমযুক্ত নম্বরযুক্ত আইডিগুলির ত্রুটিটি এটি অনুমান করা খুব সহজ। আপনার 2 টি পদ্ধতি এমনভাবে প্রয়োগ করতে সক্ষম হওয়া উচিত যা ইউআইডিগুলিকে অনুমান করা কঠিন করে তোলে।
স্টিফেন সি

8

ইউআইডি স্কিমগুলি সাধারণত কেবলমাত্র ছদ্ম-এলোমেলো উপাদানই নয়, বর্তমান সিস্টেম সময়ও ব্যবহার করে, যেমন কোনও নেটওয়ার্ক ম্যাক অ্যাড্রেস হিসাবে কোনও ধরণের প্রায়শই-অনন্য হার্ডওয়্যার আইডি।

ইউইউডি ব্যবহারের পুরো বিষয়টি হ'ল আপনি নিজের চেয়ে বেশি অনন্য আইডি সরবরাহের জন্য আরও ভাল কাজ করার জন্য এটির উপর নির্ভর করেন। এটি আপনার নিজের রোলিংয়ের পরিবর্তে তৃতীয় পক্ষের ক্রিপ্টোগ্রাফি লাইব্রেরি ব্যবহার করার পিছনে একই যুক্তি। এটি নিজে করা আরও মজাদার হতে পারে তবে সাধারণত এটি করা কম দায়বদ্ধ।


5

বছরের পর বছর ধরে এটি করা হয়েছে। কখনও কোনও সমস্যায় পড়বেন না।

আমি সাধারণত আমার ডিবি'র কাছে একটি টেবিল রাখি যাতে সমস্ত কী এবং পরিবর্তিত তারিখ এবং এই জাতীয় থাকে। সদৃশ কীগুলির কোনও সমস্যায় পড়েনি।

এটির মধ্যে কেবলমাত্র একটি অসুবিধা হ'ল আপনি যখন কিছু তথ্য দ্রুত অনুসন্ধানের জন্য কিছু ক্যোয়ারী লিখছেন তখন আপনি কীগুলি অনুলিপি করে এবং পেস্ট করে চলেছেন। আপনার আর আইডির স্মরণে রাখার মতো স্বল্প সহজতা নেই।


5

এটির স্বতন্ত্রতা পরীক্ষা করার জন্য এখানে একটি পরীক্ষার স্নিপেট। @ scalabl3 এর মন্তব্যে অনুপ্রাণিত

মজার বিষয় হ'ল, আপনি একপর্যায়ে 2 টি জেনারেট করতে পারেন যা অবশ্যই অজানা, ভাগ্য এবং divineশ্বরিক হস্তক্ষেপের মনের-বিস্ময়কর স্তরে রয়েছে, তবুও অপ্রতিরোধ্য প্রতিকূলতার পরেও এটি সম্ভব! : ডি হ্যাঁ, তা হবে না। যখন আপনি একটি সদৃশ তৈরি করেছেন তখন সেই মুহুর্তটির কথা চিন্তা করার জন্য বলার জন্য! স্ক্রিনশট ভিডিও! - scalabl3 অক্টোবর 20 '15 এ 19:11 এ

আপনি যদি ভাগ্যবান বোধ করেন, চেকবক্সটি দেখুন, এটি কেবলমাত্র বর্তমানে তৈরি করা আইডি পরীক্ষা করে। যদি আপনি কোনও ইতিহাস যাচাই করতে চান তবে এটি চেক না করে ছেড়ে দিন। অনুগ্রহ করে নোট করুন, আপনি যদি চেক না করে ফেলে রাখেন তবে কোনও কোনও মুহুর্তে ভেড়া শেষ হয়ে যাবে। আমি এটিকে সিপিইউ বান্ধব করার চেষ্টা করেছি যাতে প্রয়োজন হলে আপনি দ্রুত গর্ভপাত করতে পারেন, কেবল রান স্নিপেট বোতামটি আবার আঘাত করুন বা পৃষ্ঠাটি ছেড়ে যান।

Math.log2 = Math.log2 || function(n){ return Math.log(n) / Math.log(2); }
  Math.trueRandom = (function() {
  var crypt = window.crypto || window.msCrypto;

  if (crypt && crypt.getRandomValues) {
      // if we have a crypto library, use it
      var random = function(min, max) {
          var rval = 0;
          var range = max - min;
          if (range < 2) {
              return min;
          }

          var bits_needed = Math.ceil(Math.log2(range));
          if (bits_needed > 53) {
            throw new Exception("We cannot generate numbers larger than 53 bits.");
          }
          var bytes_needed = Math.ceil(bits_needed / 8);
          var mask = Math.pow(2, bits_needed) - 1;
          // 7776 -> (2^13 = 8192) -1 == 8191 or 0x00001111 11111111

          // Create byte array and fill with N random numbers
          var byteArray = new Uint8Array(bytes_needed);
          crypt.getRandomValues(byteArray);

          var p = (bytes_needed - 1) * 8;
          for(var i = 0; i < bytes_needed; i++ ) {
              rval += byteArray[i] * Math.pow(2, p);
              p -= 8;
          }

          // Use & to apply the mask and reduce the number of recursive lookups
          rval = rval & mask;

          if (rval >= range) {
              // Integer out of acceptable range
              return random(min, max);
          }
          // Return an integer that falls within the range
          return min + rval;
      }
      return function() {
          var r = random(0, 1000000000) / 1000000000;
          return r;
      };
  } else {
      // From http://baagoe.com/en/RandomMusings/javascript/
      // Johannes Baagøe <baagoe@baagoe.com>, 2010
      function Mash() {
          var n = 0xefc8249d;

          var mash = function(data) {
              data = data.toString();
              for (var i = 0; i < data.length; i++) {
                  n += data.charCodeAt(i);
                  var h = 0.02519603282416938 * n;
                  n = h >>> 0;
                  h -= n;
                  h *= n;
                  n = h >>> 0;
                  h -= n;
                  n += h * 0x100000000; // 2^32
              }
              return (n >>> 0) * 2.3283064365386963e-10; // 2^-32
          };

          mash.version = 'Mash 0.9';
          return mash;
      }

      // From http://baagoe.com/en/RandomMusings/javascript/
      function Alea() {
          return (function(args) {
              // Johannes Baagøe <baagoe@baagoe.com>, 2010
              var s0 = 0;
              var s1 = 0;
              var s2 = 0;
              var c = 1;

              if (args.length == 0) {
                  args = [+new Date()];
              }
              var mash = Mash();
              s0 = mash(' ');
              s1 = mash(' ');
              s2 = mash(' ');

              for (var i = 0; i < args.length; i++) {
                  s0 -= mash(args[i]);
                  if (s0 < 0) {
                      s0 += 1;
                  }
                  s1 -= mash(args[i]);
                  if (s1 < 0) {
                      s1 += 1;
                  }
                  s2 -= mash(args[i]);
                  if (s2 < 0) {
                      s2 += 1;
                  }
              }
              mash = null;

              var random = function() {
                  var t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32
                  s0 = s1;
                  s1 = s2;
                  return s2 = t - (c = t | 0);
              };
              random.uint32 = function() {
                  return random() * 0x100000000; // 2^32
              };
              random.fract53 = function() {
                  return random() +
                      (random() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53
              };
              random.version = 'Alea 0.9';
              random.args = args;
              return random;

          }(Array.prototype.slice.call(arguments)));
      };
      return Alea();
  }
}());

Math.guid = function() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c)    {
      var r = Math.trueRandom() * 16 | 0,
          v = c == 'x' ? r : (r & 0x3 | 0x8);
      return v.toString(16);
  });
};
function logit(item1, item2) {
    console.log("Do "+item1+" and "+item2+" equal? "+(item1 == item2 ? "OMG! take a screenshot and you'll be epic on the world of cryptography, buy a lottery ticket now!":"No they do not. shame. no fame")+ ", runs: "+window.numberofRuns);
}
numberofRuns = 0;
function test() {
   window.numberofRuns++;
   var x = Math.guid();
   var y = Math.guid();
   var test = x == y || historyTest(x,y);

   logit(x,y);
   return test;

}
historyArr = [];
historyCount = 0;
function historyTest(item1, item2) {
    if(window.luckyDog) {
       return false;
    }
    for(var i = historyCount; i > -1; i--) {
        logit(item1,window.historyArr[i]);
        if(item1 == history[i]) {
            
            return true;
        }
        logit(item2,window.historyArr[i]);
        if(item2 == history[i]) {
            
            return true;
        }

    }
    window.historyArr.push(item1);
    window.historyArr.push(item2);
    window.historyCount+=2;
    return false;
}
luckyDog = false;
document.body.onload = function() {
document.getElementById('runit').onclick  = function() {
window.luckyDog = document.getElementById('lucky').checked;
var val = document.getElementById('input').value
if(val.trim() == '0') {
    var intervaltimer = window.setInterval(function() {
         var test = window.test();
         if(test) {
            window.clearInterval(intervaltimer);
         }
    },0);
}
else {
   var num = parseInt(val);
   if(num > 0) {
        var intervaltimer = window.setInterval(function() {
         var test = window.test();
         num--;
         if(num < 0 || test) {
    
         window.clearInterval(intervaltimer);
         }
    },0);
   }
}
};
};
Please input how often the calulation should run. set to 0 for forever. Check the checkbox if you feel lucky.<BR/>
<input type="text" value="0" id="input"><input type="checkbox" id="lucky"><button id="runit">Run</button><BR/>


একটি আরএফসি 4122 সংস্করণ 1 (তারিখ-সময় এবং ম্যাক ঠিকানা) ইউআইডি দিয়ে চেষ্টা করুন।
জাফ

এটি সম্প্রতি ক্রোম আপডেট হওয়া অবধি দ্রুত জ্বলতে থাকত। আমি 4 সপ্তাহ আগে একই লক্ষ্য ছিল।
স্যাচললাকা

3

এটি আপনার কাছে গুরুত্বপূর্ণ কিনা তা আমি জানি না, তবে মনে রাখবেন যে জিইউডিগুলি বিশ্বব্যাপী অনন্য, তবে জিইউইডিগুলির সাবস্ট্রিংগুলি নয়


1
মনে রাখবেন যে এখানে লিঙ্কযুক্ত রেফারেন্সটি সংস্করণ 1 ইউইউডিগুলি (যা আইডিটিতে জেনারেটর কম্পিউটার সম্পর্কিত তথ্য গ্রহণ করে) সম্পর্কে কথা বলে। বেশিরভাগ উত্তর উত্তর 4 সংস্করণ (যা সম্পূর্ণরূপে এলোমেলো) সম্পর্কে কথা বলে। উপরের লিঙ্কযুক্ত উইকিপিডিয়া নিবন্ধ en.wikedia.org/wiki/Universally_unique_phanfier বিভিন্ন ধরণের ইউআইডি-র ব্যাখ্যা করে।
kratenko

3

ইউআইইউডি 4 এর জন্য আমি এটি তৈরি করেছিলাম যে প্রায় 300,000 কিলোমিটার লম্বা ঘনক্ষেত্র আকারের বাক্সে বালির শস্য রয়েছে বলে প্রায় IDs রয়েছে। এটি বৃহস্পতির ব্যাসের চেয়ে 2 1/ 2/2 গুণ বেশি লম্বা একটি বক্স।

কাজ করা যাতে কেউ আমাকে বলতে পারে আমি ইউনিট গুলিয়ে ফেলেছি কিনা:

  • বালির শস্যের আয়তন 0.00947 মিমি ^ 3 ( অভিভাবক )
  • ইউআইডি 4 এর 122 র্যান্ডম বিট রয়েছে -> 5.3e36 সম্ভাব্য মান ( উইকিপিডিয়া )
  • বালির অনেক শস্যের পরিমাণ = 5.0191e34 মিমি ^ 3 বা 5.0191e + 25 মি ^ 3
  • ভলিউম = 3.69E8 মিটার বা 369,000 কিলোমিটার সহ কিউবিক বাক্সের পাশের দৈর্ঘ্য
  • বৃহস্পতির ব্যাস: 139,820km (গুগল)

আসলে আমি অনুমান করি এটি 100% প্যাকিং ধরেছে তাই সম্ভবত এর জন্য আমার কোনও উপাদান যুক্ত করা উচিত!
হারিয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.