मुझे एक हैश एल्गोरिदम की आवश्यकता है जो एक अल्फान्यूमेरिक स्ट्रिंग आउटपुट करता है जो अधिकतम 20 वर्ण लंबा है। "अल्फान्यूमेरिक" के लिए मेरा मतलब है [a-zA-Z0-9]
।20 अक्षरों के अल्फान्यूमेरिक आउटपुट के साथ हैश एल्गोरिदम अधिकतम
इनपुट (उदाहरण के 550e8400-e29b-41d4-a716-446655440000
) विहित प्रपत्र में UUID रों हैं
विकल्प में वहाँ एक रास्ता इन सीमाओं के साथ एक स्ट्रिंग के लिए एक SHA1 या MD5 हैश कन्वर्ट करने के लिए है?
धन्यवाद।
संपादित
क्रिप्टोग्राफी द्वारा सुरक्षित होने की जरूरत नहीं है। टकराव डेटा को गलत बनाते हैं, लेकिन यदि वे sporadically होता है तो मैं इसके साथ रह सकता हूं।
संपादित 2
मैं अगर छोटा MD5 या SHA1 टकराव भी अक्सर ऐसा होता नहीं जानता। अब मैं सोच रहा हूं कि क्या एमडी 5 मान या SHA1 मान में 20 वर्णों को छोटा करना बेहतर है।
क्या आपके पास इन हैंश के लिए कोई वांछित गुण है? क्या वे क्रिप्टोग्राफिक रूप से सुरक्षित होना चाहिए, या हैश टेबल के लिए पर्याप्त अच्छा होना चाहिए? – templatetypedef
क्या आप हेक्स (या बेस 64) में SHA1 या MD5 हैश स्ट्रिंग को मुद्रित नहीं कर सकते हैं और आवश्यकता होने पर 20 वर्णों तक छंटनी कर सकते हैं? –
आपका लक्ष्य क्या है? क्या ऐसा है कि एक SHA1 हैश की 20 वर्ण सबस्ट्रिंग लेना काम नहीं करेगा? –