क्या कोई तकनीकी कारण है? क्या यह लिनक्स या यूनिक्स के शुरुआती दिनों की एक कलाकृति है, और यदि ऐसा है तो क्यों यह बनी रहती है?
मैं एक तकनीकी कारण के बारे में नहीं सोच सकता - ऐतिहासिक रूप से, यह सिर्फ ASCII है। यह कैसे पढ़ा जाता है और फिर टाइप किया गया कोडर के हाथों में है।
यूनिक्स इतिहास-रेपो / usr / src / सीएमडी / passwd.c
char *uname;
insist = 0;
if(argc < 2) {
if ((uname = getlogin()) == NULL) {
printf ("Usage: passwd user\n");
goto bex;
} else {
printf("Changing password for %s\n", uname);
}
} else {
uname = argv[1];
}
चूँकि मैंने संग्रह मैन पेज ब्राउज़ करने में कुछ समय बिताया है (उदाहरण के लिए: 1BSD बिल जॉय का पहला बर्कले सॉफ्टवेयर वितरण था ), मैंने कुछ भी नहीं देखा है जो उपयोगकर्ता नाम निर्दिष्ट करता है। यह कहना नहीं है कि यह अस्तित्व में नहीं है, लेकिन मैंने इसे नहीं देखा है।
तो फिर हम ऐतिहासिक मानवीय संदर्भ से बचे हैं। 1980 में जब मैंने टेक शुरू किया, तो हमने हमेशा लॉगिन के लिए अपने असली नाम का इस्तेमाल किया। आमतौर पर पहले प्रारंभिक और अंतिम पूर्ण नाम जब तक कि कुछ लंबाई सीमा नहीं थी। यह महत्वपूर्ण था क्योंकि आपका लॉगिन नाम आपके ईमेल पते के रूप में उपयोग किया गया था। किसी ने भी वापस नहीं भेजा, जो गुमनाम था। बेशक कुछ अपवाद रहे होंगे, मैं उन्हें याद नहीं करता। पूरे मामले में, मेरा मानना है कि यह मामला है।
और rfc5321 # पृष्ठ -63 के अनुसार, एक ईमेल "नाम" एक संख्यात्मक के साथ शुरू होने पर कोई प्रतिबंध नहीं है। जीमेल सभी संख्यात्मक उपयोगकर्ता नाम बनाएगा। (अब मिल लो, वे तेजी से जा रहे हैं)।
इसलिए यदि कोई कोड है जो एक उपयोगकर्ता नाम को अस्वीकार करता है जिसकी शुरुआत [0-9] है, तो यह संभवतः बाद में कुछ प्रोग्रामर सोच के साथ अस्तित्व में आया "आपके पास नाम के रूप में एक संख्या क्यों होगी?"। एक बार फिर, मुझे यह कहना है कि बहुत अच्छा ऐतिहासिक यूनिक्स कोड हो सकता है जिसने एक नंबर से शुरू होने वाले उपयोगकर्ता नाम को अस्वीकार कर दिया। मैंने अभी नहीं देखा है। शुरुआती पासवर्ड तालिकाओं को हाथ से संपादित किया गया था, मुझे निश्चित रूप से अक्सर ऐसा करना याद है, यहां तक कि शुरुआत में 90 के दशक में भी।
जहां तक यह जारी रहता है, मैं स्ट्रोस्ट्रुप, सी ++ 11 एफएक्यू को उद्धृत करूंगा, नए मानक पुस्तकालय कब उपलब्ध होंगे?
समस्या को और अधिक कठिन बनाने के लिए, याद रखें कि पुरानी विशेषताओं को समाप्त करना संभव नहीं है, भले ही समिति सहमत हो कि वे खराब हैं: अनुभव से पता चलता है कि उपयोगकर्ता हर कार्यान्वयनकर्ता को अनुकूलता स्विच (या डिफ़ॉल्ट रूप से) के तहत पदावनत और प्रतिबंधित सुविधाएँ प्रदान करने के लिए मजबूर करते हैं। दशकों के लिए।