2009-11-25 16 views
40

मैं अपने उपयोगकर्ताओं को अपने पासवर्ड के लिए यूनिकोड का उपयोग करने की अनुमति देना चाहता हूं।क्या मुझे पासवर्ड में यूनिकोड का समर्थन करना चाहिए?

हालांकि मुझे लगता है कि बहुत सी साइटें इसका समर्थन नहीं करती हैं (उदा। जीमेल, हॉटमेल)।

तो मुझे आश्चर्य है कि कुछ तकनीकी या उपयोगिता समस्या है जो मैं देख रहा हूं।

मैं सोच रहा हूं कि डिफ़ॉल्ट रूप से कुछ भी उपयोगिता समस्या होनी चाहिए। .NET यूनिकोड स्वीकार करता है और यदि हॉटमेल - एर, नया लाइव मेल - उस पर बनाया गया है, तो मुझे नहीं लगता कि वे क्यों प्रतिबंधित करेंगे यह।

क्या किसी को भी इसी तरह के मुद्दों का सामना करना पड़ा है?

+4

google/ms पासवर्ड आवश्यकताओं के लिए आपका स्रोत क्या है? –

उत्तर

32

मुझे यकीन है कि कोई तकनीकी समस्या नहीं है लेकिन शायद जीमेल और हॉटमेल उद्देश्य पर इसका समर्थन नहीं कर रहे हैं। इस तरह की वेबसाइटों के पास व्यापक दर्शक हैं और हर जगह से सुलभ होना चाहिए।

आइए कल्पना करें कि उपयोगकर्ता के पास जापानी में पासवर्ड है लेकिन वह यात्रा पर है और साइबर कैफे में जाता है और कोई जापानी समर्थन नहीं है जो उपयोगकर्ता लॉगिन नहीं कर पाएगा।

पासवर्ड की जटिलता का विश्लेषण करने के लिए एक और समस्या यह है कि यह सुनिश्चित करना इतना कठिन नहीं है कि उपयोगकर्ता ने अंग्रेजी में एक आम शब्द टाइप नहीं किया है लेकिन चीनी/रूसी/थाई में क्या है। जब आप अधिक भाषाएं जोड़ते हैं तो पासवर्ड की जटिलता का विश्लेषण करना अधिक कठिन होता है।

इसलिए यदि आप अपने सिस्टम को सुलभ करना चाहते हैं, तो यह सुनिश्चित करना बेहतर होगा कि उपयोगकर्ता हर प्रकार के डिवाइस/ओएस/वातावरण पर अपना पासवर्ड टाइप कर पाएगा, इसलिए अल्फा न्यूमेरिक पासवर्ड सबसे आम प्रतीकों के साथ (!<>"#$%& आदि ..) हर जगह उपलब्ध पात्रों का अच्छा सेट है।

+0

+1: अच्छा exmaple –

+4

जब पाम प्री पहले बाहर आया, तो आप पासवर्ड फ़ील्ड पर 'प्रतीक' तालिका नहीं ला सके - जिससे मेरे लिए अधिकांश साइटों में लॉग इन करना असंभव हो गया। उन्होंने इसे ठीक कर दिया है, इसलिए मेरे पास आवश्यक पात्रों तक पहुंच है, लेकिन फिर भी सभी ASCII वर्ण उपलब्ध नहीं हैं। (मैं बीईएल (^ जी) का उपयोग पासवर्ड में बहुत करता था, जब एक पूर्व सिसडमिन ने मुझे बताया कि यह संभव था। टैब (^ आई) वेब रूपों के माध्यम से प्रवेश करना लगभग असंभव है। # कुछ प्रकारों पर पहले चरित्र के रूप में समस्याएं दे सकते हैं पुराने टर्मिनल कनेक्शन के) – Joe

+2

हालांकि फ्रांसीसी/बेल्जियम एज़र्टी कीबोर्ड उपयोगकर्ताओं को QWERTY पर 'सामान्य' प्रतीकों को वापस लाने में एक बड़ी समस्या है ... जो तब केवल अक्षरों और अंकों (उपयोगकर्ता के लिए) का समर्थन करने के लिए नेतृत्व करेंगे, अगर आप एक ही तर्क का पालन करें। – xtofl

0

मुझे यकीन है कि उन साइटों के बहुभाषी समकक्ष यूनिकोड का समर्थन करते हैं। यह एक तकनीकी चुनौती के बजाय उपयोगकर्ता आवश्यकताओं के मुद्दे की तरह लगता है।

0

मुझे आश्चर्य अगर वहाँ सर्वर एन्कोडिंग ग्राहक में पासवर्ड भेज रहा है के कुछ नहीं किया जा रहा में कोई तकनीकी समस्या है नहीं होगा।

हालांकि, मुझे लगता है कि होता है कि, कहते हैं, मुख्य रूप से native- के साथ साइटों बोलने वाले जापानी, चीनी या रूसी दर्शक पासवर्ड के लिए आमतौर पर उपयोग किए जाने वाले संबंधित गैर-ASCII चरित्र सेट (बिग 5, ईयूसी-केआर, कोई 8, आदि) का उपयोग करेंगे। हो सकता है कि आप किसी भी गैर-यूनिकोड सामान का उपयोग करके पुराने वेब क्लाइंट से निपटने के लिए क्या कर रहे हैं, शोध कर सकें।

+1

"संबंधित गैर-ASCII चरित्र सेट" क्या हैं? क्या आपका मतलब यूनिकोड है? – dottedmag

+0

नहीं, मेरा मतलब है सभी गैर-यूनिकोड सामान। ठीक है, उनमें से अधिकतर शायद एसएससीआईआई को सबसेट के रूप में रखते हैं, लेकिन वे अभी भी यूनिकोड से काफी अलग हैं। बिग 5, कोई 8, ईयूसी-केआर दिमाग में आते हैं। http://en.wikipedia.org/wiki/Character_encoding की एक पूरी सूची है। – ndim

24

आम तौर पर मैं पासवर्ड में किस प्रकार के पात्रों की अनुमति नहीं देता है, इस पर प्रतिबंध लगाने के पक्ष में दृढ़ता से हूं। हालांकि, याद रखें कि आपको कुछ ऐसी चीज़ों की तुलना करना है जो पासवर्ड या हैश हो। पूर्व मामले में आपको यह सुनिश्चित करना होगा कि तुलना सही ढंग से की जाती है जो यूनिकोड के साथ अकेले ASCII के मुकाबले अधिक जटिल है; बाद के मामले में आपको यह सुनिश्चित करना होगा कि जब भी प्रवेश किया जाता है तो आप ठीक उसी तरह से हैंशिंग कर रहे हैं। सामान्यीकरण फ़ॉर्म यहां पर लागू होने या शाप होने में सहायता कर सकते हैं, जो उन्हें लागू करता है।

उदाहरण के लिए, एक आवेदन में मैं काम कर रहा हूं, मैं पासवर्ड के यूटीएफ -8 रूपांतरण पर एक हैश का उपयोग कर रहा हूं जिसे पहले वर्णित किया गया था ताकि पात्रों और इस तरह के संयोजन के साथ संभावित समस्याओं को कम किया जा सके।

उपयोगकर्ता की सबसे बड़ी समस्या उपयोगकर्ता चेहरा यह है कि वे इसे किसी अन्य कीबोर्ड लेआउट की तरह कुछ स्थानों में दर्ज नहीं कर सकते हैं। यह मेरे पासवर्ड में से एक के लिए पहले से ही मामला है लेकिन अब तक कोई समस्या नहीं थी। और आखिरकार, यह एक निर्णय है जिसे उपयोगकर्ता को अपना पासवर्ड चुनने के लिए करना पड़ता है, न कि एप्लिकेशन को उपयोगकर्ता की तरफ से आवेदन करना चाहिए।मुझे संदेह है कि ऐसे उपयोगकर्ता हैं जो खुशी से अपने पासवर्ड में मनमानी यूनिकोड का उपयोग करते हैं और किसी अन्य कीबोर्ड लेआउट का उपयोग करते समय उत्पन्न होने वाली समस्याओं के बारे में नहीं सोचते हैं। (यह वेब-आधारित सेवाओं के लिए किसी और चीज से अधिक हो सकता है, हालांकि।)

ऐसे उदाहरण हैं जहां यूनिकोड सही तरीके से वर्जित है। ऐसा एक उदाहरण TrueCrypt है जो बूट-टाइम पासवर्ड (पूर्ण-वॉल्यूम एन्क्रिप्शन के लिए) के लिए यूएस कीबोर्ड लेआउट के उपयोग को मजबूर करता है। वहां कोई अन्य लेआउट नहीं है और इसलिए यूनिकोड या कोई अन्य कीबोर्ड लेआउट केवल समस्याएं उत्पन्न करता है।

हालांकि, यह स्पष्ट नहीं करता है कि वे सामान्य पासवर्ड में यूनिकोड क्यों मना करते हैं। एक चेतावनी अच्छी हो सकती है लेकिन मेरी आंखों में पूरी तरह से मना करना गलत है।

+4

@ जोहान्स: +1 न मनाएं लेकिन उपयोगकर्ता को – RageZ

+0

+1 चेतावनी दें।अच्छे अंक। चेतावनी के लिए – devstuff

+0

+1 भी! मैं यह भी मानता हूं कि एक ऐप यह तय करने वाला नहीं होना चाहिए। विचार से प्यार करो। – KL90

2

मैं अपने सभी वेब अनुप्रयोगों में यूनिकोड पासवर्ड का समर्थन करता हूं। यदि किसी हालिया ब्राउज़र का उपयोग करने पर विज़िटर अपनी पसंदीदा या मूल स्क्रिप्ट में किसी भी कोड पॉइंट का उपयोग कर सकता है।

बढ़ी हुई सुरक्षा के लिए मैं उलटा एन्क्रिप्शन का उपयोग करने के बजाय नमकीन हैश स्टोर करता हूं।

महत्वपूर्ण बात यह है कि हैश को बाइट अनुक्रम जोड़ने से पहले पासवर्ड स्ट्रिंग को सही ढंग से सामान्य और एन्कोड करना है (मैं एंडियन आजादी के लिए यूटीएफ -8 पसंद करता हूं)।

+0

सुझावों के लिए धन्यवाद। मैं निश्चित रूप से एक नमकीन हैश भी करूँगा (और यूटीएफ -8)। – KL90

+3

यदि आप इस मार्ग (और यूनिकोड वर्णों को वास्तव में अनुमति देने वाले किसी भी अन्य मार्ग) पर जाते हैं, तो सुनिश्चित करें कि आप [सामान्यीकरण] (http://unicode.org/reports/tr15/) पर पढ़ते हैं और लगातार एक (अधिमानतः एनएफसी) –

+0

का उपयोग करते हैं जोआचिम के लिए धन्यवाद, इसका जिक्र करना भूल गया। – devstuff

3

यूनिकोड बेकार है यदि आपको प्रोग्रामेटिक मिलान करना है। "माइनस साइन" और "डैश" वही दिखते हैं, लेकिन अलग कोड हो सकते हैं। "एन पर एक मजाकिया tilde के साथ" एक पत्र, या एक diacritic और एक पत्र हो सकता है।

यदि लोग अलग-अलग एन्कोडिंग विधियों का उपयोग करते हैं, तो उनके पासवर्ड मेल नहीं खाते हैं, भले ही पासवर्ड समान दिखते हों। omg-ponies aka humanity=epic fail देखें।

आप को सामान्य सकते हैं, लेकिन क्या जब होता है:

  • सामान्य नियमों को बदलने
  • आप अपने पासवर्ड में विशेषक के साथ कुछ उपयोगकर्ताओं है
  • आप अपने पासवर्ड में संयुक्त पत्र के साथ कुछ उपयोगकर्ताओं है
  • पासवर्ड हैंश किए गए हैं, इसलिए आप पासवर्ड

अनुमान लगा सकते हैं - आप एन अपने कुछ उपयोगकर्ताओं पर एक पासवर्ड रीसेट करने के लिए eed।

+1

"एन एक मजेदार टिल्ड के साथ" यह एक बीटीडब्ल्यू है। –

0

अच्छा विचार।

पासवर्ड को मजबूत बनाता है, उपयोगकर्ताओं को अधिक स्वतंत्रता देता है। और यह पहले से ही विंडोज द्वारा किया जाता है (के बाद से कम से कम विन 2000), सक्रिय निर्देशिका और एलडीएपी, नोवेल (के बाद से कम से कम 2004)

कुछ ग्राहकों यह (http://mailman.mit.edu/pipermail/kerberos/2008-July/013923.html) चाहते हैं और वहाँ भी इसे कैसे करना पर एक मानक है दाएं (http://tools.ietf.org/html/rfc4013)।

20

तो मुझे आश्चर्य है कि कुछ तकनीकी या उपयोगिता समस्या है जो मैं देख रहा हूं।

HTTP मूल प्रमाणीकरण के साथ गैर-ASCII पासवर्ड (और उस मामले के लिए उपयोगकर्ता नाम) के साथ एक तकनीकी समस्या है। जहां तक ​​मुझे पता है कि आपके द्वारा उल्लिखित साइटों का उपयोग आमतौर पर मूल प्रमाणीकरण का उपयोग नहीं करता है, लेकिन यह सिस्टम से हैंगओवर हो सकता है।

HTTP मूल प्रमाणीकरण मानक बेस 64-एन्कोडेड username:password टोकन को परिभाषित करता है।इसका मतलब है कि यदि आपके पास उपयोगकर्ता नाम या पासवर्ड में एक कोलन है तो परिणाम संदिग्ध हैं। इसके अलावा, टोकन बेसक-डीकोडिंग आपको केवल बाइट्स देता है, जिसमें बाइट्स को वर्णों में परिवर्तित करने की कोई दिशा नहीं होती है। और अंदाज लगाइये क्या? विभिन्न ब्राउज़र इसे करने के लिए विभिन्न एन्कोडिंग का उपयोग करते हैं।

  • ओपेरा और क्रोम यूटीएफ -8 का उपयोग करें।

  • आईई क्लाइंट सिस्टम के डिफ़ॉल्ट कोड पेज (जो निश्चित रूप से कभी भी यूटीएफ -8 नहीं है) का उपयोग करता है और मैंगल्स वर्ण जो विंडोज मानक का उपयोग करके इसमें फिट नहीं होते हैं, ऐसा लगता है कि एक कैट दिखता है जो एक बिट जैसा दिखता है, या शायद बस नहीं (कौन परवाह करता है) एल्गोरिदम।

  • सफारी आईएसओ -885 9 -1 का उपयोग करता है, और चुपचाप किसी भी ऑथ टोकन को भेजने से इंकार कर देता है जब उपयोगकर्ता नाम या पासवर्ड में वर्ण नहीं होते हैं।

  • मोज़िला कोड बिंदु के निम्नतम 8 बिट्स लेता है (आईएसओ -885 9 -1 के समान, लेकिन अधिक टूटा हुआ)। कोई परिणाम या प्रगति के साथ कष्टप्रद चर्चा के लिए bug 41489 देखें।

तो अगर आप गैर- ASCII उपयोगकर्ता नाम या पासवर्ड फिर मूलभूत प्रमाणीकरण प्रक्रिया में सबसे अच्छा जटिल और असंगत हो जाएगा, उन सोच के साथ क्यों यह बेतरतीब ढंग से काम करता है या जब वे विभिन्न कंप्यूटर या ब्राउज़र का उपयोग विफल रहता है अनुमति देते हैं।

+8

+1 हर किसी के पसंदीदा के लिए: एक कैरेक्टर ढूंढने का प्रयास करें जो इसे पसंद करता है, या शायद बस नहीं (कौन परवाह करता है) एल्गोरिदम। – huntaub

6

नहीं। ASCII वर्णों में पासवर्ड प्रतिबंधित करें।

जब आप कोई पासवर्ड इनपुट करते हैं, तो पासवर्ड को छुपाने के लिए गोलियां प्रदर्शित की जाती हैं।

लेकिन जब आप जापानी और अन्य भाषाओं को इनपुट करते हैं, तो आपको वांछित वर्णों में कीस्ट्रोक को परिवर्तित करने, इनपुट पद्धति के माध्यम से जाना होगा। यह आपको देखने के लिए आवश्यक है कि पात्र क्या हैं।

+0

+1 मैंने इस तथ्य के बारे में सोचा नहीं था कि इनपुट विधि आपके पासवर्ड को प्रकट करेगी। – Mallow

-1
एचटीएमएल 5 के साथ

, अपने उपयोगकर्ताओं के लिए एक फ़ॉन्ट भेजने की क्षमता के साथ, आप एक दृश्य कुंजीपटल अपने सिस्टम पर, एकीकृत कर सकते हैं ताकि उन अपनी भाषा का उपयोग करने के लिए सक्षम हो जाएगा

सुझाव: Deja Vu font उपयोग करें, और संशोधित यह FontForge का उपयोग कर रहा है ताकि आप इसे दृश्य जावास्क्रिप्ट कीबोर्ड के साथ छोटा कर सकें, आप इसे संभव बना सकते हैं;)

Look here, यह एक प्रोजेक्ट है जहां मैंने चाल की है।

संबंधित मुद्दे