मुझे समझ में नहीं आता क्यों Data.HashTable
Data.Hashable
का उपयोग कर रहा है, जिसमें hashWithSalt
(केवल/मूल) विधि के रूप में है।डेटा क्यों है। हैशटेबल नमक के साथ हैशिंग का उपयोग करता है (डेटा से। हैशबल)?
यह एक बार हैश मान की गणना करने के प्राकृतिक अनुकूलन के साथ फिट नहीं है, और इसे ऑब्जेक्ट (प्राकृतिक, क्योंकि हास्केल ऑब्जेक्ट्स अपरिवर्तनीय हैं) में संग्रहीत करता है।
यदि मैं HashTables
का उपयोग करना चाहता हूं, तो मुझे hashWithSalt
लागू करने के लिए मजबूर होना पड़ता है। (1.2.0 जा रहे हैं। * 1.2.1 करने के लिए। *, Hashable फिर से शुरू की एक वर्ग पद्धति के रूप में hash
, लेकिन यह मदद नहीं करता है?)
वास्तविक तालिका कार्यान्वयन hashWithSalt
का उपयोग करना (नहीं है HashTable.ST.Linear
बिलकुल नहीं है, HashTable.ST.Cuckoo
केवल दो निश्चित लवण का उपयोग करता है)।
आप किस पैकेज को देख रहे हैं? http://hackage.haskell.org/package/base-4.5.1.0/docs/Data-HashTable.html बिल्कुल 'हैशबल' का उपयोग नहीं करता है। – dfeuer
क्या आप हैश के संदर्भ में 'हैशविथसाल्ट' लागू नहीं कर सकते? कोयल संस्करण काम नहीं कर सकता है लेकिन अन्य हैशटेबल्स होगा। –
कारण हैश टेबल एक हैश का उपयोग नमक के साथ हैश टक्कर को कम करने के लिए है जब हमलावर मेज में डाली गई कुंजियों को नियंत्रित कर सकता है। बेशक, उन्हें लाइब्रेरी द्वारा निर्धारित लवण के बजाय साइट-विशिष्ट लवण का उपयोग करना चाहिए .. – Carl