একটি ধীর SecureRandom জেনারেটর সঙ্গে ডিল কিভাবে?


165

আপনি যদি জাভাতে কোনও ক্রিপ্টোগ্রাফিক শক্তিশালী এলোমেলো নম্বর চান, আপনি ব্যবহার করুন SecureRandom। দুর্ভাগ্যক্রমে, SecureRandomখুব ধীর হতে পারে। যদি এটি /dev/randomলিনাক্সে ব্যবহার করে তবে এটি তৈরির জন্য পর্যাপ্ত এনট্রপির জন্য অপেক্ষা করতে বাধা দিতে পারে। পারফরম্যান্স পেনাল্টি আপনি কীভাবে এড়িয়ে যাবেন?

কেউ কি এই সমস্যার সমাধান হিসাবে আনকমন ম্যাথ ব্যবহার করেছেন ?

কেও নিশ্চিত করতে পারে যে এই পারফরম্যান্স সমস্যাটি জেডিকে 6 এ সমাধান করা হয়েছে?


দেখে মনে হচ্ছে এটি SecureRandom.generateSeed () স্বচ্ছলতার সাথে সম্পর্কিত । অলসতা
ঝুলছে

/ Dev / ইউরেনডোম পরীক্ষা করুন (/ dev / এলোমেলো নয়) .. যদি কোনও ব্লকিং সমস্যা হয় তবে কেবলমাত্র ইউরেনডম থেকে একটি র্যান্ডম সংখ্যার জেনারেটর বীজ পাওয়ার কথা বিবেচনা করুন।
jcalfi314

উইন্ডোজ সম্পর্কিত: stackoverflow.com/questions/49322948/...
patrikbeno

উত্তর:


79

আপনি যদি সত্যিকারের এলোমেলো ডেটা চান, তবে দুর্ভাগ্যক্রমে আপনাকে এটির জন্য অপেক্ষা করতে হবে। এর মধ্যে একটি SecureRandomপিআরএনজির বীজ অন্তর্ভুক্ত রয়েছে । আনকমন ম্যাথগুলি কোনও দ্রুত SecureRandomওয়েবসাইটের থেকে বীজ ডেটা ডাউনলোড করার জন্য ইন্টারনেটের সাথে সংযুক্ত হতে পারে যদিও এর চেয়ে দ্রুত কোনও সত্যিকারের র্যান্ডম ডেটা সংগ্রহ করতে পারে না । আমার অনুমান যে এটি /dev/randomযেখানে পাওয়া যায় তার চেয়ে দ্রুততর হওয়ার সম্ভাবনা নেই ।

আপনি যদি পিআরএনজি চান তবে এই জাতীয় কিছু করুন:

SecureRandom.getInstance("SHA1PRNG");

স্ট্রিংগুলি কী সমর্থন করে তা SecureRandomএসপিআই সরবরাহকারীর উপর নির্ভর করে তবে আপনি এগুলি ব্যবহার করে Security.getProviders()এবং এটি গণনা করতে পারেন Provider.getService()

সান SHA1PRNG পছন্দ করে, তাই এটি ব্যাপকভাবে উপলব্ধ। এটি পিআরএনজিগুলি হিসাবে দ্রুতগতিতে আসে না তবে পিআরএনজিগুলি কেবল সংখ্যার ক্রাঞ্চ হবে, এন্ট্রপির শারীরিক পরিমাপের জন্য ব্লক করবে না।

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


আনকমমন ম্যাথস সিডিংয়ের জন্য কেবল ইন্টারনেট থেকে ডেটা ডাউনলোড করে, এলোমেলো সংখ্যা উত্পন্ন করার সময় এটি এলোমেলো ডেটা ফেরত দেয় না।
ড্যান ডায়ার

SecureRandom একই - / দেব / ইউরানডম কেবল বপনের জন্য।
এভিডি

হাঁ। প্রশ্নকর্তা যখন বলেন "যদি আপনি সিকিউরার্যান্ডম ব্যবহার করেন এমন কোনও এলোমেলো নম্বর চান - এটি ধীর হতে পারে", আমি ভেবেছিলাম সম্ভবত তিনি সবকিছুর জন্য গিটসিডটি ব্যবহার করছেন এবং তার এন্ট্রপি পুলটি নিকাশ করছেন। ফিক্সটি জেডিকে 6 পাওয়ার নয়, এটি সিকিউরআরডমটি যেমনভাবে উদ্দেশ্য করা হয়েছে সেভাবে ব্যবহার করতে হবে ;-)
স্টিভ জেসপ

@ ড্যান ডায়ার - আমি আনকমনের গণিত সম্পর্কে আমার মন্তব্য সংশোধন করেছি। আমি আপনার পৃষ্ঠাটি একবার দেখেছি, তাই আমি জানতাম যে "এলোমেলো সংখ্যার" দ্বারা আমি এর বীজের জন্য "বোঝাতে চেয়েছি" বরং "ব্যবহারকারীর কাছে ফিরে আসি"। তবে আপনি ঠিক বলেছেন যে আমি যা বলেছিলাম তা নয় ...
স্টিভ জেসোপ

"এটি ব্যাপকভাবে উপলব্ধ"। এটি প্রতিটি অনুগত জেডিকে অন্তর্ভুক্ত নয় ? এটি জাভা সুরক্ষা মানের নামের তালিকায় রয়েছে ... ( ডকস.ওরকল / জাভাসে / ৮ / ডকস / টেকনোটস / গাইডস / সিকিউরিটি/… )
সান রিলি

176

আপনি লিনাক্সের সাহায্যে দ্রুত-তবে-কিছুটা-কম-সুরক্ষিত / দেব / ইউরানডম নির্বাচন করতে সক্ষম হবেন:

-Djava.security.egd=file:/dev/urandom

তবে এটি জাভা 5 এবং তার পরে ( জাভা বাগ 6202721 ) এর সাথে কাজ করে না । প্রস্তাবিত কাজের চারপাশটি হ'ল:

-Djava.security.egd=file:/dev/./urandom

(অতিরিক্ত নোট করুন /./)


24
নোট করুন যে জাভা বাগ রিপোর্টটি "একটি ত্রুটি নয়" বলেছে। অন্য কথায় ডিফল্ট হওয়া সত্ত্বেও /dev/urandom, সান এটিকে যাদু স্ট্রিং হিসাবে বিবেচনা করে এবং /dev/randomযেভাবেই ব্যবহার করে , তাই আপনাকে এটিকে নকল করতে হবে। একটি file:URL কখন ইউআরএল নয় file:? যখনই সান সিদ্ধান্ত নেয় এটি নয় :-(
জিম গ্যারিসন

6
এটি তদন্ত করতে সবেমাত্র বেশ কিছুটা সময় ব্যয় করে মনে হয় যে জাভা.সিকিউরিটি ফাইলটিতে অথবা file:/dev/urandomসেট থাকা সত্ত্বেও স্বাভাবিক সেটিংটি যখনই (বা বলা হয়) পড়া হয়। একদমই না পড়ার ফলাফল সহ কর্মসংস্থান (স্ট্রেসের সাথে নিশ্চিত করা হয়েছে)-Djava.security.egdsecurerandom.source/dev/random/SecureRandom.getSeed()setSeed()file:/dev/./urandom/dev/random
ম্যাট বি

7
/dev/urandomকম সুরক্ষিত নয় /dev/randomযখন একটি আধুনিক CSPRNG সঙ্গে বাস্তবায়িত: en.wikipedia.org/wiki//dev/random#FreeBSD
lapo

আমি মনে করি যে /dev/urandom/এটির প্রধান আশঙ্কা হ'ল আপনি যদি বাক্সের বাইরে নতুন হার্ডওয়্যারে গোপনীয়তা তৈরি করতে ব্যবহার করেন যা সম্ভবত অনুমানযোগ্য অবস্থায় থাকতে পারে। /dev/urandom/এন্ট্রপির জন্য বাধা দেবে না যদিও এটি আপনার এক ক্ষেত্রেই করা উচিত। গোপনীয়তা অব্যাহত থাকলে পরিস্থিতি আরও খারাপ হয়, যেমন আপনার ডিভাইসটি প্রথম বুটে প্রথম কাজটি একটি সরকারী-বেসরকারী কী জুড়ি তৈরি করে। এই ভীতিজনক পরিস্থিতির বাইরে, /dev/urandomসাধারণ SecureRandomঅ্যালগরিদমগুলি যাইহোক ব্যবহার করার চেয়ে ভাল ।
স্টিভ জেসোপ

1
কোনটি সঠিক ? -জাজা.সিকিউরিটি.ইজিডি = ফাইল: / দেব /./ ইউরানডম বা ফাইল: /// দেব / ইউরানডম
@

35

লিনাক্সে, এর জন্য ডিফল্ট বাস্তবায়ন SecureRandomহ'ল NativePRNG(উত্স কোড এখানে ), যা খুব ধীর হতে থাকে। উইন্ডোজে, ডিফল্টটি হ'ল SHA1PRNG, যা অন্যরা নির্দেশ করেছে যে আপনি লিনাক্সেও যদি এটি স্পষ্টভাবে উল্লেখ করেন তবে আপনি এটি ব্যবহার করতে পারেন।

NativePRNGঅপ্রচলিত সিস্টেম থেকে ( ক্রমে পাঠ করে ) অবিচ্ছিন্নভাবে এনট্রপি গ্রহণ করে আনকমনস ম্যাথসের এইএসসিউন্টারআরএনজি থেকে SHA1PRNGএবং আনকমনস ম্যাথসের এএসসি কাউন্টারআরএনজি থেকে পৃথক /dev/urandom। অন্যান্য পিআরএনজিগুলি বীজ বপনের পরে কোনও অতিরিক্ত এনট্রপি অর্জন করে না।

AESCounterRNG এর তুলনায় প্রায় 10x দ্রুত SHA1PRNG, যা আইআইআরসি নিজে থেকে দুই বা তিনগুণ দ্রুত NativePRNG

আপনি কি একটি দ্রুতগামী PRNG প্রয়োজন যে acquires আরম্ভের পরে এনট্রপি, তাহলে আপনি একটি জাভা বাস্তবায়ন জানতে পারেন কিনা তা দেখতে ফরচুনা । ফরচুনা বাস্তবায়নের মূল পিআরএনজি এটিএসকিউন্টারআরএনজি দ্বারা ব্যবহৃত হিসাবে একই, তবে এন্ট্রপি পুলিং এবং স্বয়ংক্রিয় পুনর্বিবেচনার একটি অত্যাধুনিক সিস্টেমও রয়েছে।


এই লিঙ্কটি কাজ করছে না। uncommons-maths.dev.java.net/nonav/api/org/uncommons/maths/… । আমি এটি দেখতে পারে কোথাও আছে?
ইউভিএম

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

আমি কেবল একটি মেসেজডিজাস্ট দিয়ে সিকিউরআরডমের একটি উদাহরণ চালিয়েছিলাম এবং একটি হেক্সেনকোড তৈরি করেছি my আমার উইন্ডোজ 7 পিসিতে পুরো অপারেশনটি 33 মিলিসেকেন্ড নিয়েছিল itএটিই সমস্যা। I SHA1PRNG.SecureRandom prng = SecureRandom.getInstance ("SHA1PRNG") ব্যবহার করেছেন; স্ট্রিং র‌্যান্ডমম = নতুন পূর্ণসংখ্যা (prng.nextInt ()) .toString (); ম্যাসেজডিজস্ট শ = ম্যাসেজডাইজস্ট.জেটআইনস্ট্যান্স ("SHA-1"); ফলাফল = sha.digest (randomNum.getBytes ()); str = hexEncode (ফলাফল);
ইউভিএম

24

অনেক লিনাক্স ডিস্ট্রোস (বেশিরভাগ ডেবিয়ান-ভিত্তিক) /dev/randomএন্ট্রপির জন্য ওপেনজেডিকে কনফিগার করে ।

/dev/random সংজ্ঞা অনুসারে ধীর হয় (এবং এমনকি অবরুদ্ধও করতে পারে)।

এটিকে থেকে কীভাবে অবরোধ মুক্ত করা যায় সে সম্পর্কে আপনার কাছে দুটি বিকল্প রয়েছে:

  1. এনট্রপি উন্নত করুন, বা
  2. এলোমেলোতা প্রয়োজনীয়তা হ্রাস করুন।

বিকল্প 1, এন্ট্রপি উন্নত করুন

আরও এনট্রপিতে প্রবেশ করতে /dev/random, হ্যাজেড ডিমন ব্যবহার করে দেখুন। এটি এমন একটি ডেমন যা ক্রমাগত HAVEGE এনট্রপি সংগ্রহ করে এবং ভার্চুয়ালাইজড পরিবেশেও কাজ করে কারণ এর জন্য কোনও বিশেষ হার্ডওয়্যার প্রয়োজন হয় না, কেবল সিপিইউ এবং একটি ঘড়ি।

উবুন্টু / ডেবিয়ান:

apt-get install haveged
update-rc.d haveged defaults
service haveged start

RHEL / CentOS এ:

yum install haveged
systemctl enable haveged
systemctl start haveged

বিকল্প 2. র্যান্ডমনেস প্রয়োজনীয়তা হ্রাস করুন

যদি কোনও কারণে উপরের সমাধানটি সহায়তা না করে বা আপনি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী এলোমেলোতার বিষয়ে চিন্তা করেন না, তবে আপনি /dev/urandomপরিবর্তে স্যুইচ করতে পারেন , যা ব্লক না করার গ্যারান্টিযুক্ত।

এটি বিশ্বব্যাপী করতে, jre/lib/security/java.securityআপনার ডিফল্ট জাভা ইনস্টলেশনটিতে ফাইলটি সম্পাদনা করুন /dev/urandom(অন্য কোনও বাগের কারণে এটি নির্দিষ্ট করা দরকার /dev/./urandom)।

এটার মত:

#securerandom.source=file:/dev/random
securerandom.source=file:/dev/./urandom

তারপরে আপনাকে কখনই এটি কমান্ড লাইনে নির্দিষ্ট করতে হবে না।


দ্রষ্টব্য: আপনি যদি ক্রিপ্টোগ্রাফি করেন তবে আপনার ভাল এনট্রপি দরকার । কেস পয়েন্ট - অ্যান্ড্রয়েড পিআরএনজি ইস্যু বিটকয়েন ওয়ালেটের সুরক্ষা হ্রাস করেছে।


আপনার উত্তরকে উর্ধ্বমুখী করা হয়েছে, তবে " /dev/randomসংজ্ঞা অনুসারে ধীর (এবং অবরুদ্ধও করতে পারে)" ভুল; এটি সম্পূর্ণরূপে সিস্টেমের কনফিগারেশনের উপর নির্ভর করে। নবীনতর মেশিন CPU- র ব্যবহার করা হতে পারে যেমন ফাস্ট RNG থাকতে পারে, এবং বাসদ মেশিন সাধারণত একই বাস্তবায়ন আছে /dev/randomএবং /devl/urandom। তবুও, আপনার সম্ভবত সম্ভবত দ্রুত হওয়ার উপর নির্ভর করা উচিত নয় /dev/random। ভিএম-র উপর আপনি ক্লায়েন্ট ভিএম-তে ক্লায়েন্ট টুলসেট ইনস্টল করতে চাইতে পারেন যাতে এটি হোস্ট ওএসের আরএনজি ব্যবহার করতে পারে।
মার্টেন বোদেউয়েস

17

SecureRandomএকটি মাথা বিহীন ডেবিয়ান সার্ভারে একবারে প্রায় 25 সেকেন্ডের জন্য ব্লক করা কলগুলিতে আমার একই সমস্যা ছিল । হেডলেস সার্ভারগুলিতে আপনাকে প্রয়োজনীয় এন্ট্রপি তৈরি করার জন্য আপনাকে এর জাতীয় কিছু দরকার রয়েছে havegedতা নিশ্চিত করার জন্য আমি ডিমনটি ইনস্টল করেছি /dev/random। আমার SecureRandomএখনকার কলগুলি সম্ভবত মিলিসেকেন্ডগুলি নেবে।


4
অ্যাপ-গেট ইনস্টল হ্যাজেড তারপর আপডেট-আরসি.ডি হ্যাজেড ডিফল্ট
রড লিমা

11

আপনি যদি সত্যই "ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী" এলোমেলোতা চান তবে আপনার একটি শক্তিশালী এনট্রপি উত্স প্রয়োজন। /dev/randomধীর কারণ এটি সিস্টেম ইভেন্টগুলি এনট্রপি সংগ্রহের জন্য অপেক্ষা করতে হয় (ডিস্ক রিডস, নেটওয়ার্ক প্যাকেটগুলি, মাউস মুভমেন্ট, কী প্রেসগুলি ইত্যাদি)।

একটি দ্রুত সমাধান হ'ল একটি হার্ডওয়্যার এলোমেলো সংখ্যা জেনারেটর। আপনার মাদারবোর্ডে ইতিমধ্যে একটি বিল্ট-ইন থাকতে পারে; খুঁজে বার করো hw_random ডকুমেন্টেশন figuring আউট যদি আপনি এটি আছে যদি, এবং কিভাবে এটি ব্যবহার করার নির্দেশাবলীর জন্য। আরএনজি-সরঞ্জাম প্যাকেজে একটি ডেমন রয়েছে যা হার্ডওয়্যার উত্পন্ন এন্ট্রপিকে ফিড করবে /dev/random

যদি আপনার সিস্টেমে এইচআরএনজি উপলব্ধ না হয় এবং আপনি পারফরম্যান্সের জন্য এনট্রপি শক্তি উত্সর্গ করতে ইচ্ছুক হন তবে আপনি একটি ভাল পিআরএনজি থেকে ডেটা সহ বীজ বানাতে চাইবেন /dev/random, এবং পিআরএনজিকে বেশিরভাগ কাজ করতে দিন। SP800-90 এ তালিকাভুক্ত বেশ কয়েকটি এনআইএসটি-অনুমোদিত পিআরএনজি রয়েছে যা বাস্তবায়নের জন্য সোজা।


ভাল কথা, তবে আমার কোডটি বাণিজ্যিক অ্যাপ্লিকেশনের অংশ। সার্ভার পরিবেশের উপর আমার কোনও নিয়ন্ত্রণ নেই। আমি মনে করি টার্গেট সার্ভারগুলি সর্বদা মাউস এবং কীবোর্ড ছাড়াই থাকে এবং এন্ট্রপির জন্য পুরোপুরি ডিস্ক এবং নেটওয়ার্ক I / O এর উপর নির্ভর করে, সম্ভবত এটিই মূল সমস্যা।
ডেভিড জি

3
আমি আবিষ্কার করেছি / dev / এলোমেলো সিস্টেম ইভেন্টের উপর নির্ভরশীল, তাই অস্থায়ী কর্মক্ষেত্র হিসাবে, আমার পরীক্ষাটি চলার সময় আমি কেবল আমার মাউসকে পিছনে পিছনে সরিয়ে নিয়েছি ....
ডেভিড কে

আই 820 চিপসেটের জন্য 82802 হাবটি বেদনাদায়কভাবে ধীর (আরআইপি) ছিল was আমি অবাক হয়েছি আপনি এটি থেকে দরকারী কিছু সংগ্রহ করতে পারেন could আমি মনে করি আমি অক্টেট সংগ্রহ করার চেয়ে এটিকে অবরুদ্ধ করতে বেশি সময় ব্যয় করেছি।
jww

6

জাভা 8 ব্যবহার করে, আমি আবিষ্কার করেছি যে লিনাক্সে কলিংটি SecureRandom.getInstanceStrong()আমাকে NativePRNGBlockingঅ্যালগরিদম দেয়। এটি প্রায়শ কয়েক সেকেন্ডের জন্য কয়েক বাইট লবণের জন্য ব্লক করে দেয়।

NativePRNGNonBlockingপরিবর্তে আমি স্পষ্টতই এর চেয়ে জিজ্ঞাসা করতে চলেছি , এবং নাম থেকে প্রত্যাশা অনুযায়ী, এটি আর অবরুদ্ধ নয়। এর সুরক্ষা সম্পর্কিত প্রভাবগুলি কী তা আমার কোনও ধারণা নেই। সম্ভবত অ-ব্লক করা সংস্করণটি এনট্রপি ব্যবহারের পরিমাণের গ্যারান্টি দিতে পারে না।

আপডেট : ওকে, আমি এই দুর্দান্ত ব্যাখ্যাটি পেয়েছি ।

সংক্ষেপে, ব্লক করা এড়াতে, ব্যবহার করুন new SecureRandom()। এটি ব্যবহার করে /dev/urandom, যা অবরুদ্ধ হয় না এবং মূলত হিসাবে নিরাপদ /dev/random। পোস্টটি থেকে: "মেশিনটি প্রথম বুট করার সময় আপনি কেবলমাত্র / dev / এলোমেলো কল করতে চাইবেন এবং এনট্রপি এখনও জমে উঠেনি"।

SecureRandom.getInstanceStrong() আপনাকে পরম শক্তিশালী আরএনজি দেয় তবে এটি কেবল এমন পরিস্থিতিতে ব্যবহার করা নিরাপদ যেখানে একগুচ্ছ ব্লক আপনাকে প্রভাবিত করবে না।


1
আমি কেবল দীর্ঘমেয়াদী কীগুলির জন্য অনুমতি দেব getInstanceStrong() , যেমন টিএলএস শংসাপত্রগুলির জন্য। এবং তারপরেও আমি বরং ব্যবহার করব new SecureRandom()বা একটি FIPS মেনে চলার কী কী জেনারেটর বা এলোমেলো নম্বর জেনারেটর। হ্যাঁ, এটি একটি উত্তর সরবরাহ করে, যদি /dev/urandom এটি অবরুদ্ধ না করে: শেষ পর্যন্ত এটি এখনও সিস্টেম এনট্রপির উপর নির্ভর করে; তবে এটি সাধারণভাবে খুব ভাল পরামর্শ । যদি /dev/urandomব্লক করে থাকে তবে আপনার জাভা অ্যাপ্লিকেশন না দিয়ে সমস্যার উত্স ঠিক করতে হতে পারে।
মার্টেন বোদেউয়েস

5

এমন একটি সরঞ্জাম রয়েছে (কমপক্ষে উবুন্টুতে) যা আপনার সিস্টেমে কৃত্রিম এলোমেলোতা সরবরাহ করবে। কমান্ডটি সহজভাবে:

rngd -r /dev/urandom

এবং আপনার সামনের দিকে একটি সুডোর দরকার হতে পারে। আপনার কাছে আরএনজি-সরঞ্জাম প্যাকেজ না থাকলে আপনার এটি ইনস্টল করতে হবে। আমি এটি চেষ্টা করেছিলাম এবং এটি অবশ্যই আমাকে সাহায্য করেছিল!

সূত্র: ম্যাট বনাম বিশ্ব


2
এটি কিছুটা বিপজ্জনক কারণ এটি লিনাক্স কার্নেলের এনট্রপি স্তর অনুমান, সিস্টেম-ব্যাপী পুরোপুরি অক্ষম করে। আমি মনে করি পরীক্ষার উদ্দেশ্যে (পড়ুন: জেনকিনস একটি অ্যাপ্লিকেশন পরীক্ষার চালাচ্ছে) /dev/./urandom ব্যবহার করে ভাল, তবে উত্পাদন হয় না।
মীরাবিলোস

এটি আসলে আমার জন্য কাজ করা একমাত্র সমাধান। জেনকিনস সিআই-তে গ্র্যাডলের সাথে একটি অ্যান্ড্রয়েড প্রকল্প তৈরি করার সময় এবং "বিল্ডটিতে কোনও পরামিতি" দিয়ে যাওয়ার ফলে আমার কোনও "যথেষ্ট এনট্রপি" সমস্যা ছিল।
স্ল্যাভ

আমাকে জেনিয়ালsudo rngd -r /dev/urandomsudo apt install rng-tools
মিস্টারমিসিজ

5

আমি একই সমস্যা সম্মুখীন । সঠিক অনুসন্ধানের পদগুলির সাথে কিছুটা গুগল করার পরে, আমি ডিজিটাল ওশনের এই নিবন্ধটি জুড়ে এসেছি ।

সুরক্ষার সাথে আপস না করে হ্যাজড হ'ল একটি সম্ভাব্য সমাধান।

আমি নিবন্ধটি থেকে নিছক এখানে প্রাসঙ্গিক অংশ উদ্ধৃত করছি।

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

কিভাবে হ্যাজেড ইনস্টল করবেন

এই নিবন্ধে পদক্ষেপগুলি অনুসরণ করুন। https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

আমি এটি এখানে পোস্ট করেছি


5

আপনি যে সমস্যাটির বিষয়ে উল্লেখ /dev/randomকরেছেন তা SecureRandomআলগোরিদমের সাথে নয় , তবে এটি ব্যবহার করে এলোমেলো উত্সের সাথে। দুটো অর্থেগোনাল। দুজনের মধ্যে কোনটি আপনাকে ধীর করে দিচ্ছে তা বুঝতে হবে।

আপনি সংযুক্ত অংকিত গণিত পৃষ্ঠাগুলিতে স্পষ্টভাবে উল্লেখ করেছেন যে তারা এলোমেলোতার উত্সকে সম্বোধন করছে না।

আপনি বিভিন্ন জেসিই সরবরাহকারী, যেমন বাউনিক্যাসল এর চেষ্টা করতে পারেন, তাদের বাস্তবায়ন SecureRandomদ্রুত হয় কিনা তা দেখার জন্য।

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

আমার এও উল্লেখ করা উচিত যে খারাপভাবে প্রয়োগ করা SecureRandomঅ্যালগরিদম এবং / অথবা এলোমেলো উত্স ব্যবহার করা খুব বিপজ্জনক , আপনি নিজের কাস্টম প্রয়োগের সাথে নিজের জেসিই সরবরাহকারীকে রোল করতে পারেন SecureRandomSpi। আপনার সরবরাহকারীকে স্বাক্ষর করতে আপনার সূর্যের সাথে একটি প্রক্রিয়া চালিয়ে যেতে হবে, তবে এটি আসলে বেশ সোজা; ক্রিপ্টো লাইব্রেরিতে মার্কিন রফতানি নিষেধাজ্ঞাগুলি সম্পর্কে আপনি অবগত আছেন উল্লেখ করে তাদের কেবল একটি ফ্যাক্স ফ্যাক্স করা উচিত


Different বিভিন্ন জেসিই সরবরাহকারী কেবল তখনই ব্যবহার করতে পারবেন যদি তারা এন্ট্রপির অন্য উত্স ব্যবহার করে যা মূলতঃ তাদের একটি নির্দিষ্ট হার্ডওয়ার যেমন এইচএসএম ব্যবহার করতে হয়। অন্যথায় তারা সিস্টেম থেকে কতটা এনট্রপি বের করে তার উপর নির্ভর করে ধীরগতির অভিজ্ঞতা অর্জনের সম্ভাবনা রয়েছে।
মার্টেন বোদেউয়েস

3

পুনরাবৃত্ত অ্যালগরিদমের জন্য আরম্ভের উত্স হিসাবে নিরাপদ র্যান্ডম ব্যবহার করুন; আপনি তখন আনকমনম্যাথের পরিবর্তে বাল্ক কাজের জন্য একটি মার্সেন টুইস্টার ব্যবহার করতে পারেন, যা কিছু সময় ধরে ছিল এবং অন্যান্য প্রিন্টের চেয়ে ভাল প্রমাণিত হয়েছে

http://en.wikipedia.org/wiki/Mersenne_twister

এখনই রিফ্রেশ নিশ্চিত করুন এবং তারপরে আরম্ভের জন্য সুরক্ষিত এলোমেলো ব্যবহার করুন, উদাহরণস্বরূপ, আপনি ক্লায়েন্টের প্রতি এক মেরস্ন টুইস্টার সিউডো র্যান্ডম জেনারেটর ব্যবহার করে, র্যান্ডমাইজেশনের উচ্চ পর্যায়ে অর্জন করতে পারবেন


2
এই উত্তরটি ভুল: Mersenne প্রতারক হয় না একটি নিরাপদ র্যান্ডম সংখ্যা উত্পাদক। এটির জন্য ভাল অ্যালগরিদম হবে Randomতবে তা নয় SecureRandom
মার্টেন বোদেউয়েস

3

ডকুমেন্টেশন অনুসারে , সিকিউরর্যান্ডম দ্বারা ব্যবহৃত বিভিন্ন অ্যালগরিদমগুলি পছন্দ অনুসারে:

  • বেশিরভাগ * এনআইএক্স সিস্টেমে
    1. NativePRNG
    2. SHA1PRNG
    3. NativePRNGBlocking
    4. NativePRNGNonBlocking
  • উইন্ডোজ সিস্টেমগুলিতে
    1. SHA1PRNG
    2. উইন্ডোজ-PRNG

আপনি যেহেতু লিনাক্স সম্পর্কে জিজ্ঞাসা করেছিলেন, তাই আমি উইন্ডোজ বাস্তবায়ন উপেক্ষা করছি, এবং সানপিকেসিএস 11 যা কেবলমাত্র সোলারিসে পাওয়া যায়, যদি না আপনি নিজে এটি ইনস্টল করেন - এবং তারপরে আপনি এটি জিজ্ঞাসা করবেন না।

সেই একই ডকুমেন্টেশন অনুসারে, এই অ্যালগোরিদমগুলি কী ব্যবহার করে

SHA1PRNG
প্রাথমিক সিডিং বর্তমানে সিস্টেম বৈশিষ্ট্য এবং জাভা.সিকিউরিটি এনট্রপি সংগ্রহের ডিভাইসের সংমিশ্রনের মাধ্যমে করা হয়।

NativePRNG
nextBytes() ব্যবহার /dev/urandom
generateSeed()ব্যবহারসমূহ/dev/random

নেটিপিআরএনজিবি ব্লকিং
nextBytes() এবং generateSeed()ব্যবহার/dev/random

নেটিভপিআরএনজিওন ব্লকিং
nextBytes() এবং generateSeed()ব্যবহার/dev/urandom

এর অর্থ আপনি যদি SecureRandom random = new SecureRandom()এটি ব্যবহার করেন তবে এটি সেই তালিকার নীচে চলে যাবে যতক্ষণ না এটি কার্যকরভাবে কাজ করে, যা সাধারণত নেটিভআরপিএনজি হবে finds এবং এর অর্থ হ'ল এটি নিজে থেকেই বীজ দেয় /dev/random(বা এটি ব্যবহার করে যদি আপনি স্পষ্টভাবে একটি বীজ উত্পন্ন করেন), তারপরে /dev/urandomপরবর্তী বাইটস, ইনটস, ডাবল, বুলিয়ানস, কী আছে-ইউএস পাওয়ার জন্য ব্যবহার করে ।

যেহেতু /dev/randomব্লক করা হচ্ছে (এটি এনট্রপি পুলে পর্যাপ্ত এনট্রপি না হওয়া পর্যন্ত এটি ব্লক করে), যা কার্য সম্পাদনে বাধা দিতে পারে।

এর একটি সমাধান হ'ল হ্যাজেড জাতীয় কিছু ব্যবহার করা যা যথেষ্ট পরিমাণে এনট্রপি জেনারেট করে, অন্য সমাধানটি /dev/urandomপরিবর্তে ব্যবহার করে। আপনি পুরো jvm এর জন্য এটি নির্ধারণ করতে পারলে, আরও ভাল সমাধান SecureRandomব্যবহার করে নির্দিষ্ট নির্দিষ্ট উদাহরণটির জন্য এটি করছেন SecureRandom random = SecureRandom.getInstance("NativePRNGNonBlocking")। মনে রাখবেন যে পদ্ধতিটি যদি নেটিভপিআরএনজিওন ব্লকিংয়ের জন্য একটি নুশুচ অ্যালগোরিদম এক্সসেপশন নিক্ষেপ করতে পারে তবে ডিফল্টে ফ্যালব্যাকের জন্য প্রস্তুত থাকুন।

SecureRandom random;
try {
    random = SecureRandom.getInstance("NativePRNGNonBlocking");
} catch (NoSuchAlgorithmException nsae) {
    random = new SecureRandom();
}

এছাড়াও নোট করুন যে অন্যান্য * নিক্স সিস্টেমে /dev/urandomঅন্যরকম আচরণ করতে পারে


Is /dev/urandomর্যান্ডম যথেষ্ট?

প্রচলিত জ্ঞানের রয়েছে যা কেবল /dev/randomএলোমেলো যথেষ্ট। তবে কিছু কণ্ঠ আলাদা হয়। ইন "ব্যবহার করুন SecureRandom করার সঠিক উপায়" এবং "আপনার / dev / urandom সম্পর্কে মিথস" , এটা বলা হয় যে /dev/urandom/ঠিক ভাল হিসাবে।

তথ্য সুরক্ষা স্ট্যাকের উপরের ব্যবহারকারীরা এটির সাথে একমত হন । মূলত, যদি আপনাকে জিজ্ঞাসা করতে /dev/urandomহয় তবে আপনার উদ্দেশ্যটি ভাল fine


2

আমি নিজেই এই সমস্যার বিরুদ্ধে যাইনি, তবে আমি প্রোগ্রামের সূচনায় একটি থ্রেড স্প্যান করব যা অবিলম্বে একটি বীজ উত্পাদন করার চেষ্টা করে, তারপরে মারা যায়। আপনি যে পদ্ধতিটি র্যান্ডমগুলির জন্য কল করেন তা যদি জীবন্ত থাকে তবে সেই থ্রেডে যোগ দেবে তাই প্রোগ্রামের প্রয়োগের খুব তাড়াতাড়ি যদি এটি ঘটে তবে প্রথম কলটি কেবল ব্লক করে।


এটি বরং চরম হ্যাক, তবে এটি কার্যকর হতে পারে; বলা হয় না যে ব্যবহৃত পিআরএনজি অতিরিক্ত বীজ উপাদান ব্যবহার করতে পারে না যা এখনও অবরুদ্ধ হতে পারে। সিস্টেমে এনট্রপি সরবরাহ বা সংশোধন করার জন্য একটি ভিন্ন এলোমেলো নম্বর ব্যবহার করা দৃ strongly়ভাবে পছন্দ করা উচিত। এটি অন্তত একটি অস্থায়ী সমাধান সরবরাহ করতে পারে, তাই আমি কোনও উত্তরই কম ভোট দিয়েছি।
মার্টেন বোদেউয়েস

2

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

এলোমেলো সংখ্যা জেনারেশনে আপস করবেন না। সেখানে একটি দুর্বলতা আপনার সমস্ত সুরক্ষার সাথে আপস করে।

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


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

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

এটি নির্দিষ্ট আরএনজির উপর নির্ভর করে যদি এটি একবার বীজ দেয় বা যদি এটি কিছুক্ষণ পরে পুনরায় হয়। এনআইএসটি পিআরএনজি এর পুনঃনির্ধারণ নির্দিষ্ট করে তবে অনেকগুলি সফ্টওয়্যার বাস্তবায়ন হয় না। কোডটিকে একটি সিঙ্গলটনের চারপাশে পুনর্গঠন করা একটি ভয়াবহ ধারণা, বিশেষত মাল্টিথ্রেডেড বাস্তবায়নের ক্ষেত্রে; সমস্যার উত্স ঠিক করা আরও ভাল: এনট্রপির অভাবে ধীর বীজ। যদি আপনি একটি সিঙ্গলটন ব্যবহার করেন তবে এটি অন্যান্য সিকিওরআরডম বাস্তবায়নের জন্য বীজ সরবরাহ করতে ব্যবহার করুন যা সম্পূর্ণ নিরোধক। এই ধরণের ডিজাইনের সম্ভবত বেশ কিছু জ্ঞানের প্রয়োজন রয়েছে।
মার্টেন বোদেউয়েস

পছন্দ করুন যদি সিস্টেমটি এনট্রপির জন্য অপেক্ষা করে বাস্তবায়নটি অবরুদ্ধ হয় তবে আমি মনে করি যে অন্তর্নিহিত উত্সটি কার্যকরভাবে একটি সিঙ্গলটন হওয়ায় আপনার আবেদনে এটি সিঙ্গলটন হিসাবে বিবেচনা করা কোনও ভয়াবহ ধারণা নয়। অন্যদের বীজ করার জন্য সেই উদাহরণটি ব্যবহার করা জটিল হলেও, এটি একটি ভাল পরামর্শ। আমি নিশ্চিত নই, তবে আমি মনে করি যে সূর্য (এবং তারপরে ওরাকল) সরবরাহকারী SecureRandomতার এনট্রপি জমায়েতে গত 10 বছরে কয়েকবার পরিবর্তন করেছে।
এরিকসন

আমি নিশ্চিত যে এটি বেশ কয়েকবার পরিবর্তিত হয়েছে, এত বেশি যে আমি চেষ্টা করব না এবং সমস্ত মন্তব্য এই মন্তব্যে রাখব না :)। এটি সম্ভবত কম যে সম্ভবত একটি ধীর গতির SecureRandomসমস্যা, তবে কোনও সিস্টেমে কম এনট্রপি সর্বদা ইস্যুতে থাকবে। একটি সিঙ্গলটন ব্যবহার করে দৃ strongly়ভাবে মিলিত কোড তৈরি করবে যা একটি নকশার অ্যান্টি-প্যাটার্ন। অতএব এটি চরম যত্ন সহ ব্যবহার করা উচিত; আপনি যদি সমস্যাটি সমাধান করেন তবে আপনাকে কোডের সমস্ত রেফারেন্সকে অবশ্যই বিপরীত করতে হবে।
মার্টেন বোদেউয়েস

2

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

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

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

সম্পাদনা করুন: এখানে আরএনজিতে কিছু ক্রিপ্টোগ্রাফিক কোর্সের নোট আমি পেয়েছি 'নেট যা এই বিষয়ের সাথে খুব প্রাসঙ্গিক দেখায়।


1
"ফরচুনা (এর অন্যতম লেখক হলেন ব্রুস শ্নিয়ার, ক্রিপ্টোগ্রাফির বিশেষজ্ঞ)" এবং অন্য একজন হলেন নীল ফার্গুসন, ক্রিপ্টোগ্রাফির বিশেষজ্ঞ :-)
স্টিভ জেসোপ

2

যদি আপনার হার্ডওয়্যার সমর্থন করে তবে এটি জাভা আরডিআর্যান্ড ইউটিলিটি ব্যবহারের চেষ্টা করুন যার আমি লেখক।

এটি ইন্টেলের RDRANDনির্দেশের উপর ভিত্তি করে এবং প্রায় 10 গুণ দ্রুত SecureRandomএবং বৃহত পরিমাণে বাস্তবায়নের জন্য কোনও ব্যান্ডউইথ সমস্যা নেই।


নোট করুন যে এই বাস্তবায়ন কেবল সেই সিপিইউতে কাজ করে যা নির্দেশ সরবরাহ করে (যেমন rdrandপ্রসেসরের পতাকা সেট করা থাকে)। আপনার এটি নির্মাতার মাধ্যমে স্পষ্টভাবে ইনস্ট্যান্ট করা দরকার RdRandRandom(); কোন নির্দিষ্টProvider প্রয়োগ করা হয়নি।


3
আপনি people.umass.edu/gbecker/BeckerChes13.pdf পড়তে চাইতে পারেন এবং কেবলমাত্র ইন্টেল আরডিআরএনডি ডেটা ব্যবহার না করার বিষয়ে নিশ্চিত হন । এটি সর্বদা কিছু অন্যান্য অবিশ্বাস্য ডেটার সাথে মিশ্রিত করুন, যেমন একটি এআরসি 4 স্ট্রিম সাইফারের আউটপুট (/ দেব / ইউরানডম থেকে বর্ধিত এবং প্রথম কয়েক কিবি আউটপুট তাদের জ্ঞাত পক্ষপাতের জন্য ফেলে দেওয়া হয়)।
মীরাবিলোস

+1 মিরাবিলোস। আমি মনে করি RDRANDএকটি ভাল উত্স, তবে এটি কিছুটা অবিশ্বস্ত। এটি অবশ্যই সংগ্রাহক হিসাবে অনেকের একটি ইনপুট হতে হবে (ডেভিড জনস্টনের কোনও অপরাধ নয়)।
jww

আমি ভোট দিয়েছি, লিঙ্কটি ঠিক করেছি এবং কিছু পটভূমি তথ্য সরবরাহ করেছি। আপনি যদি রাজি না হন তবে সম্পাদনাটি আবার রোল করুন।
মার্টেন বোদেউয়েস

1

অন্য কিছু দেখার বিষয় হল সম্পত্তি সিকিউরিডডম.স্রোত ফাইল ফাইল / সুরক্ষা / জাভা.সিকিউরিটি

/ Dev / urandom ব্যবহার করে / dev / এলোমেলো ব্যবহারের চেয়ে পারফরম্যান্স সুবিধা থাকতে পারে। মনে রাখবেন যে এলোমেলো সংখ্যার গুণমান যদি গুরুত্বপূর্ণ হয় তবে কোনও আপস করবেন না যা সুরক্ষা ভঙ্গ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.