मुझे लगता है कि यह लेख आप जो कर रहे हैं उसके लिए बहुत प्रासंगिक हो सकता है। यदि आप वास्तव में सुरक्षा कारणों और कानूनी दायित्व के लिए एसएसएन को "गुमनाम" करना चाहते हैं, तो बस उन्हें हैश करना पर्याप्त नहीं है।
बस उन्हें हैश करना पूरी तरह से नियतात्मक प्रक्रिया होगी, इसलिए व्यक्तिगत एसएसएन को प्रभावी ढंग से "मुखौटा" करने के लिए, प्रक्रिया को यादृच्छिक बनाने की आवश्यकता है। अन्यथा आप एसएसएन के सभी संभावित संयोजनों के माध्यम से आसानी से बल लगा सकते हैं (जो हैश फ़ंक्शन को बलपूर्वक करने की कोशिश करने की तुलना में बहुत कम काम होगा) और एक मिलान मूल्य की तलाश करें।
यह देखने के लिए कि यह क्यों सबसे सरल उदाहरण लेता है कि एक एसएसएन केवल दो मानों, 0 और 1 पर ले सकता है। हैश फ़ंक्शन की गुणवत्ता और ताकत के बावजूद, अंत में केवल दो संभावित परिणाम होंगे और यह देखना आसान है कौन सा है।
यह पुराना खेल है कि आपको हैश क्यों नहीं करना चाहिए उदा। पहले उन पर कुछ प्रीप्रोसेसिंग किए बिना सीधे पासवर्ड। अंतर्निहित डेटा में पर्याप्त एन्ट्रॉपी नहीं है और इसलिए यह एक पूर्व-गणना तालिका में लुकअप के लिए एक आसान लक्ष्य होगा।
जिस क्षण आपके एसएसएन निजी और गोपनीय हो जाते हैं (वे हर देश में नहीं होते हैं, इसलिए टिप्पणियों में मेरे बेवकूफ प्रश्न को क्षमा करें :), वही सर्वोत्तम प्रथाएं जो पासवर्ड भंडारण के लिए भी उपयोग की जाती हैं, आपके विशेष मामले पर भी लागू होनी चाहिए, यानी धीमी गति से अनुकूली हैशिंग एल्गोरिथम जो प्रारंभिक एन्ट्रॉपी की कमी की भरपाई करता है जैसे कि bcrypt, scrypt और PBKDF2 (जिसे पहले से ही मार्कस एडम्स द्वारा अनुशंसित किया गया था)।