के लिए बहुत तेज़ हैश फ़ंक्शन मुझे एक बहुत तेज स्ट्रिंग हैशिंग फ़ंक्शन की आवश्यकता है, जो PHP में लिखे गए वेब एप्लिकेशन के साथ अच्छी तरह से फिट बैठता है।हैशिंग 8-16 बाइट स्ट्रिंग्स
जिस समस्या को मैं दूर करने की कोशिश कर रहा हूं वह एक एक्सेस कंट्रोल सिस्टम में अनुमतियों को आईडी असाइन कर रहा है। मैं अनुमतियों की आईडी का प्रतिनिधित्व करने के लिए हैश स्ट्रिंग का उपयोग करने के बारे में सोच रहा हूं। इस तरह से मैं इस तरह जिस तरह से अनुमतियों की जाँच करने में सक्षम हो जाएगा:
if ($Auth->isAllowed($user, "blog.comment")) {
// Do some operation
}
...
if ($Auth->isAllowed($user, "profile.avatar.change")) {
// Do some other operation
}
डीबी तालिका अनुमति मैप कर देंगे उपयोगकर्ता की भूमिकाओं के लिए हैश। यह जांचने के लिए कि उपयोगकर्ता को "profile.avatar.change" करने की अनुमति है, संबंधित स्ट्रिंग को डीबी टेबल के विरुद्ध धोया और चेक किया जाएगा।
यह बहुत आसान है और विभिन्न मॉड्यूल के बीच अद्वितीय अनुमति आईडी बनाए रखने के बारे में चिंता करने की आवश्यकता नहीं होगी। लेकिन हैशिंग समारोह बहुत कुशल होना चाहिए।
हैशिंग एक तरफ सड़क है, इसलिए इस तरह के कुछ के लिए, इसके अस्तित्व के अलावा, हैश में आप कुछ भी नहीं देख सकते हैं। –
लिनक्स दृष्टिकोण का पालन करने का सबसे आम तरीका है। (अनुमतियों का प्रतिनिधित्व करने के लिए 0-7 का उपयोग कर)। आईडी को अनुमतियों के लिए असाइन करें और पूर्णांक बनाने के लिए 2^(आईडी संख्या) करें, फिर यह पता लगाने के लिए कि आपके पास कौन सी अनुमतियां हैं ... या बस ऑब्जेक्ट/टोकन को चर के समूह के साथ पास करें और $ user- > can_change_stuff या $ user-> has_apples – Dimi
@apokryfos, यह एक डुप्लिकेट नहीं है। ये सभी प्रश्न मेरा हैं। यह प्रश्न स्ट्रिंग हैशिंग के बारे में अधिक विशिष्ट है। – ezpresso