আমার দলটি এমন কিছু সার্ভার সাইড কোড হস্তান্তর করেছে (জাভাতে) যা এলোমেলো টোকেন উত্পন্ন করে এবং আমার এটি সম্পর্কে একটি প্রশ্ন আছে -
এই টোকেনগুলির উদ্দেশ্যটি মোটামুটি সংবেদনশীল - সেশন আইডি, পাসওয়ার্ড পুনরায় সেট লিঙ্ক ইত্যাদির জন্য ব্যবহৃত হয় তাই তাদের ক্রিপ্টোগ্রাফিকভাবে এলোমেলো হওয়া দরকার যাতে কেউ তাদের অনুমান করতে না পারে বা এগুলি কার্যকরভাবে জোর করে তোলে। টোকেনটি "দীর্ঘ" তাই এটি 64 বিট দীর্ঘ।
কোডটি বর্তমানে java.util.Randomএই টোকেনগুলি তৈরি করতে শ্রেণিটি ব্যবহার করে । এর জন্য ডকুমেন্টেশনটিjava.util.Random পরিষ্কারভাবে নিম্নলিখিতটি বলে:
Java.util.Random এর উদাহরণগুলি ক্রিপ্টোগ্রাফিকভাবে নিরাপদ নয়। সুরক্ষা-সংবেদনশীল অ্যাপ্লিকেশনগুলির দ্বারা ব্যবহারের জন্য ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত সিউডো-এলোমেলো নম্বর জেনারেটর পেতে সিকিউরআরন্ডম ব্যবহারের পরিবর্তে বিবেচনা করুন।
যাইহোক, কোডটি বর্তমানে যেভাবে ব্যবহার করছে java.util.Randomতা হ'ল - এটি java.security.SecureRandomক্লাসটি ইনস্ট্যান্ট করে এবং তারপরে শ্রেণিকে তাত্ক্ষণিকভাবে ব্যবহার করার SecureRandom.nextLong()জন্য বীজ প্রাপ্ত করার জন্য পদ্ধতিটি ব্যবহার করে java.util.Random। তারপরে এটি java.util.Random.nextLong()টোকেন উত্পন্ন করতে পদ্ধতি ব্যবহার করে ।
সুতরাং এখন আমার প্রশ্ন - এটি এখনও বোধহয় সুরক্ষিত যে java.util.Randomবীজ ব্যবহার করা হচ্ছে java.security.SecureRandom? আমার কি কোডটি পরিবর্তন করতে হবে যাতে এটি java.security.SecureRandomটোকেনগুলি তৈরি করতে একচেটিয়াভাবে ব্যবহৃত হয়?
বর্তমানে কোড বীজের Randomশুরুতে একবার
Randomএকবার শুরুর সময় বীজ দেয়, বা এটি প্রতিটি টোকেনের জন্য একটি নতুন বীজ দেয়? আশা করি, এটি একটি মূ .় প্রশ্ন, তবে আমি ভেবেছিলাম যে আমি এটি পরীক্ষা করব।
longবা doubleমান উত্পাদন করে না ।