अलग-अलग शब्द चयन के साथ यह प्रश्न बहुत अधिक पूछा गया है (जिससे यह कहना मुश्किल हो जाता है, "बस इसे खोजें!")। इस तथ्य ने एक ब्लॉग पोस्ट को प्रेरित किया, जिसका शीर्षक था, The PHP में URL पैरामीटर एन्क्रिप्शन के लिए व्यापक गाइड ।
लोग यहां क्या करना चाहते हैं
लोगों को इसके बजाय क्या करना चाहिए
स्पष्टीकरण
आमतौर पर, लोग संक्षिप्त चाहते हैं यादृच्छिक दिखने वाले यूआरएल। यह आपको एन्क्रिप्ट करने के बाद प्रमाणित करने के लिए अधिक जगह नहीं देता हैए> डेटाबेस रिकॉर्ड आईडी जिसे आप अस्पष्ट करना चाहते हैं। ऐसा करने के लिए 32 बाइट्स (HMAC-SHA256 के लिए) की न्यूनतम URL लंबाई की आवश्यकता होगी, जो बेस 64 में एन्कोड किए जाने पर 44 वर्णों की होती है।
एक आसान रणनीति एक यादृच्छिक स्ट्रिंग उत्पन्न करना है (देखें random_compat
random_bytes()
. के PHP5 कार्यान्वयन के लिए और random_int()
इन स्ट्रिंग्स को उत्पन्न करने के लिए) और इसके बजाय उस कॉलम का संदर्भ लें।
साथ ही, हैशिड टूट गए हैं सरल क्रिप्टोनालिसिस द्वारा। उनका निष्कर्ष बताता है:
<ब्लॉककोट>मैंने जिस हमले का वर्णन किया है वह एक क्रूर बल के हमले से काफी बेहतर है, इसलिए क्रिप्टोग्राफिक दृष्टिकोण से एल्गोरिदम को टूटा हुआ माना जाता है, नमक को पुनर्प्राप्त करना काफी आसान है; एक हमलावर के लिए एन्कोडिंग को किसी भी दिशा में चलाना संभव बनाता है और एक आदर्श हैश फ़ंक्शन के लिए संपत्ति 2 को अमान्य करता है।
इस पर भरोसा न करें।