পাইথন আক্রমণকারীদের সংঘর্ষের জন্য পরিকল্পিত কীগুলি প্রেরণ করে আপনার অ্যাপ্লিকেশনটিকে টর্-পিটিং থেকে আটকাতে র্যান্ডম হ্যাশ বীজ ব্যবহার করে। দেখুন মূল দুর্বলতা প্রকাশ । এলোমেলো বীজ দিয়ে একটি হ্যাশ অফসেট করে (স্টার্টআপে একবার সেট করা হয়) আক্রমণকারীরা আর কী কী সংঘর্ষে হবে তা ভবিষ্যদ্বাণী করতে পারে না।
আপনি একটি নির্দিষ্ট বীজ সেট করতে পারেন বা PYTHONHASHSEED
পরিবেশের পরিবর্তনশীল সেট করে বৈশিষ্ট্যটি অক্ষম করতে পারেন ; ডিফল্টটি হ'ল random
তবে 0
বৈশিষ্ট্যটি পুরোপুরি অক্ষম করে আপনি এটি একটি নির্দিষ্ট ধনাত্মক পূর্ণসংখ্য মানকে সেট করতে পারেন ।
পাইথন সংস্করণ ২.7 এবং ৩.২ এ বৈশিষ্ট্যটি ডিফল্টরূপে অক্ষম করা আছে ( এটি সক্ষম করতে -R
স্যুইচটি ব্যবহার করুন বা সেট করুন PYTHONHASHSEED=random
); এটি পাইথন ৩.৩ এবং তার মধ্যে পূর্বনির্ধারিতভাবে সক্ষম হয়।
আপনি যদি পাইথন সেটে কীগুলির ক্রমের উপর নির্ভর করে থাকেন তবে তা করবেন না। পাইথন এই ধরণের প্রয়োগ করতে একটি হ্যাশ টেবিল ব্যবহার করে এবং তাদের ক্রম সন্নিবেশ এবং মোছার ইতিহাসের পাশাপাশি এলোমেলো হ্যাশ বীজের উপর নির্ভর করে । দ্রষ্টব্য যে পাইথন 3.5 এবং এর চেয়েও পুরনো ক্ষেত্রে এটি অভিধানেও প্রযোজ্য।
এছাড়াও object.__hash__()
বিশেষ পদ্ধতির ডকুমেন্টেশন দেখুন :
দ্রষ্টব্য : ডিফল্টরূপে, __hash__()
স্ট্র, বাইটস এবং ডেটটাইম অবজেক্টের মানগুলি একটি অনির্দেশ্য র্যান্ডম মান সহ "সল্টেড" হয়। যদিও তারা পৃথক পাইথন প্রক্রিয়াতে স্থির থাকে, পাইথনের পুনরাবৃত্তি আহ্বানের মধ্যে তারা অনুমানযোগ্য নয়।
এটি সতর্কতার সাথে নির্বাচিত ইনপুটগুলির দ্বারা সৃষ্ট অস্বীকৃত পরিষেবার বিরুদ্ধে সুরক্ষা প্রদানের উদ্দেশ্যে যা ডিক্স সন্নিবেশনের সবচেয়ে খারাপ ক্ষেত্রে কর্মক্ষমতা, O (n ^ 2) জটিলতার শোষণ করে। Http://www.ocert.org/advisories/ocert-2011-003.html দেখুন ।
হ্যাশ মান পরিবর্তন করা ডিকটস, সেট এবং অন্যান্য ম্যাপিংয়ের পুনরাবৃত্তির ক্রমকে প্রভাবিত করে। পাইথন কখনও এই অর্ডারিং সম্পর্কে গ্যারান্টি দেয় নি (এবং এটি সাধারণত 32-বিট এবং 64-বিট বিল্ডের মধ্যে পরিবর্তিত হয়)।
এছাড়াও দেখুন PYTHONHASHSEED
।
আপনার যদি একটি স্থিতিশীল হ্যাশ বাস্তবায়ন প্রয়োজন, আপনি সম্ভবত hashlib
মডিউলটি দেখতে চান ; এটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন প্রয়োগ করে। Pybloom প্রকল্পের এই পদ্ধতির ব্যবহার ।
যেহেতু অফসেটটিতে একটি উপসর্গ এবং প্রত্যয় (যথাক্রমে শুরু মান এবং চূড়ান্ত এক্সওরড মান) রয়েছে, দুর্ভাগ্যক্রমে আপনি কেবল অফসেটটি সংরক্ষণ করতে পারবেন না। প্লাস পক্ষের, এর অর্থ এই যে আক্রমণকারীরা সহজেই টাইমিং আক্রমণগুলির সাথে অফসেটটি নির্ধারণ করতে পারে না।