मैं विंडोज के तहत पायथन के साथ एक कंसोल प्रोग्राम लिख रहा हूं।
उपयोगकर्ता को अपना पासवर्ड इनपुट करते समय प्रोग्राम का उपयोग करने के लिए लॉग इन करने की आवश्यकता है, मैं चाहता हूं कि वे "*" के रूप में प्रतिबिंबित हों, जबकि मैं उपयोगकर्ता इनपुट प्राप्त कर सकता हूं।
मुझे मानक लाइब्रेरी में गेटपास नामक एक मॉड्यूल मिला, लेकिन जब आप इनपुट (लिनक्स जैसे) इनपुट करते हैं तो यह कुछ भी गूंज नहीं करेगा।
धन्यवाद।पायथन कंसोल प्रोग्राम में गूंज "*" के साथ पासवर्ड कैसे पढ़ा जाए?
उत्तर
getpass
मॉड्यूल पायथन में लिखा गया है। आप इसे करने के लिए आसानी से इसे संशोधित कर सकते हैं। वास्तव में, यहाँ है कि आप बस अपने कोड में पेस्ट कर सकता है getpass.win_getpass()
का एक संशोधित संस्करण है:
import sys
def win_getpass(prompt='Password: ', stream=None):
"""Prompt for password with echo off, using Windows getch()."""
import msvcrt
for c in prompt:
msvcrt.putch(c)
pw = ""
while 1:
c = msvcrt.getch()
if c == '\r' or c == '\n':
break
if c == '\003':
raise KeyboardInterrupt
if c == '\b':
pw = pw[:-1]
msvcrt.putch('\b')
else:
pw = pw + c
msvcrt.putch("*")
msvcrt.putch('\r')
msvcrt.putch('\n')
return pw
आप इस पर पुनर्विचार करने हालांकि, चाहते हो सकता है। लिनक्स रास्ता बेहतर है; यहां तक कि सिर्फ पासवर्ड में वर्णों की संख्या को जानना किसी को भी महत्वपूर्ण संकेत है जो इसे क्रैक करना चाहता है।
You can use the getpass
module. यह वास्तव में प्रश्न का उत्तर नहीं देता है क्योंकि गेटपास फ़ंक्शन कंसोल को कुछ भी आउटपुट नहीं देता है। इसका कारण यह है कि यह सुरक्षा की एक अतिरिक्त परत है। अगर कोई आपके कंधे पर देख रहा है, तो वे यह पता लगाने में सक्षम नहीं होंगे कि आपका पासवर्ड कितना समय है।
इसका इस्तेमाल इस तरह के एक उदाहरण है:
from getpass import getpass
getpass('Enter your password: ')
इस उदाहरण प्रदर्शित करेगा "अपना पासवर्ड दर्ज करें:" और फिर आप अपना पासवर्ड में टाइप कर सकते हैं।
मूल प्रश्न में 'गेटपास' का उल्लेख किया गया था और अस्वीकार कर दिया गया क्योंकि यह तारों को प्रतिबिंबित नहीं करता है। – kindall
किंडल का जवाब करीब है, लेकिन इसमें बैकस्पेस के साथ समस्याएं हैं जो क्षुद्रग्रहों को मिटा नहीं रही हैं, साथ ही साथ बैकस्पेस इनपुट प्रॉम्प्ट से आगे जाने में सक्षम है।
प्रयास करें:
def win_getpass(prompt='Password: ', stream=None):
"""Prompt for password with echo off, using Windows getch()."""
if sys.stdin is not sys.__stdin__:
return fallback_getpass(prompt, stream)
import msvcrt
for c in prompt:
msvcrt.putwch(c)
pw = ""
while 1:
c = msvcrt.getwch()
if c == '\r' or c == '\n':
break
if c == '\003':
raise KeyboardInterrupt
if c == '\b':
if pw == '':
pass
else:
pw = pw[:-1]
msvcrt.putwch('\b')
msvcrt.putwch(" ")
msvcrt.putwch('\b')
else:
pw = pw + c
msvcrt.putwch("*")
msvcrt.putwch('\r')
msvcrt.putwch('\n')
return pw
नोट mscvrt.putwch अजगर 2.x के साथ काम नहीं करता है, आप के बजाय mscvrt.putch उपयोग करने के लिए की जरूरत है।
- 1. जावा के साथ पासवर्ड एन्क्रिप्टेड कुंजी कैसे पढ़ा जाए?
- 2. पायथन - एनयूएल सीमांकित लाइनों के साथ फाइल कैसे पढ़ा जाए?
- 3. बैच फ़ाइल में कंसोल से इनपुट कैसे पढ़ा जाए?
- 4. सी के समान पायथन में फ़ाइल शीर्षलेख कैसे पढ़ा जाए?
- 5. लुआ प्रोग्राम में तर्क कैसे पास और पढ़ा जाए?
- 6. पायथन में QLineEdit से पाठ को कैसे पढ़ा जाए?
- 7. आईफोन पर डिवाइस कंसोल की सामग्री को कैसे पढ़ा जाए?
- 8. कंसोल से स्पेस से अलग संख्याओं को कैसे पढ़ा जाए?
- 9. PowerShell के साथ XML फ़ाइल में सीडीएटीए कैसे पढ़ा जाए?
- 10. एक्सएमआई कैसे पढ़ा जाए?
- 11. पायथन में विंडोज़ पर्यावरण परिवर्तनीय मान कैसे पढ़ा जाए?
- 12. पाइथन के ctypes का उपयोग करके सरणी युक्त संरचना को कैसे पढ़ा जाए और पढ़ा जाए?
- 13. जावमेल के साथ दृष्टिकोण के ईमेल को कैसे पढ़ा जाए?
- 14. पायथन: कॉलम की असमान संख्या के साथ डेटा फ़ाइल को कैसे पढ़ा जाए
- 15. fgets() के साथ stdin से कैसे पढ़ा जाए?
- 16. यूटीएफ -8 के साथ इनपुटस्ट्रीम कैसे पढ़ा जाए?
- 17. जीडीबी के साथ स्थानीय चर कैसे पढ़ा जाए?
- 18. स्क्रीन के पिक्सेल को कैसे पढ़ा जाए?
- 19. PHP के साथ एक छवि को कैसे पढ़ा जाए?
- 20. numpy के साथ बाइनरी फ़ाइल का हिस्सा कैसे पढ़ा जाए?
- 21. SQLite डेटाबेस से डेटा कैसे पढ़ा जाए?
- 22. गतिशील आकार के साथ स्ट्रिंगस्ट्रीम को कैसे पढ़ा जाए?
- 23. gmon.out को कैसे पढ़ा जाए?
- 24. आर के साथ .arff फ़ाइल कैसे पढ़ा जाए?
- 25. हार्डडिस्क तापमान कैसे पढ़ा जाए?
- 26. के साथ गूंज || और &&
- 27. एंड्रॉइड में सीएसवी फ़ाइल कैसे पढ़ा जाए?
- 28. सी # में फ़ाइल बाइनरी कैसे पढ़ा जाए?
- 29. ओसीएएमएल में बिटमैप कैसे पढ़ा जाए?
- 30. जंग में उपयोगकर्ता इनपुट कैसे पढ़ा जाए?
msvcrt.putch ('\ b') ऐसा लगता है कि यह काम नहीं करता है – wong2