เมื่อพิมพ์คุณสามารถเปลี่ยนสิ่งที่แสดงข้อความได้หรือไม่? [ทำซ้ำ]

ฉันกำลังสร้างโปรแกรมเพื่อทดสอบรหัสผ่านและสงสัยว่า เมื่อผู้ใช้ป้อนรหัสผ่าน คุณสามารถหยุดไม่ให้แสดงรหัสผ่านขณะที่พวกเขาพิมพ์ลงในคอนโซล/GUI ได้หรือไม่


person 0llie_C    schedule 11.03.2014    source แหล่งที่มา
comment
สำหรับแอปพลิเคชันคอนโซล วิธีที่ดีที่สุดคือใช้โมดูล getpass แม้ว่าจะไม่เปลี่ยนอักขระที่พิมพ์เป็นเครื่องหมายดอกจันก็ตาม   -  person Jayanth Koushik    schedule 11.03.2014
comment
คุณแน่ใจหรือไม่ว่าต้องการให้ * สะท้อน? การระงับการแสดงการกดปุ่มจะเพียงพอหรือไม่   -  person MattH    schedule 11.03.2014
comment
ใช่ การระงับการกดปุ่มจะทำงาน แต่อย่างไร?   -  person 0llie_C    schedule 11.03.2014
comment
ขอบคุณ :) จะลองดู   -  person 0llie_C    schedule 11.03.2014


คำตอบ (2)


Python ช่วยให้คุณมีไลบรารี่ในตัว:

>>> import getpass
>>> pw = getpass.getpass()

แก้ไข: ตามที่กล่าวไว้โดย @MattH สิ่งนี้จะไม่สะท้อนเครื่องหมายดอกจัน (*) ในขณะที่ผู้ใช้พิมพ์รหัสผ่าน

person santosh-patil    schedule 11.03.2014
comment
ไม่มี * สำหรับการกดปุ่ม - person MattH; 11.03.2014

import tkinter as tk 

root = tk.Tk()

def store():
    pw = my_box.get()

my_box = tk.Entry(root, show='*')
my_box.pack()
Button(text='Submit', command=store).pack()

root.mainloop()

สิ่งนี้จะทำงานใน GUI จากนั้นคุณสามารถโทร pw = my_box.get() ได้เมื่อจำเป็น


คุณสามารถซ่อนผู้ใช้ input ในคอนโซลได้โดยใช้ getpass โมดูล- แต่เป็นเพียงการซ่อนและไม่แสดงเครื่องหมายดอกจัน

>>> import getpass
>>> pw = getpass.getpass()

แต่การแสดงเครื่องหมายดอกจันในคอนโซลนั้นซับซ้อนกว่าเล็กน้อย คุณจะต้องใช้ sys และ msvcrt- Google หรือถามคำถามแยกต่างหากเพื่อสอบถามวิธีใช้โมดูลเหล่านี้เพื่อจุดประสงค์นั้น ฉันไม่รู้.

person anon582847382    schedule 11.03.2014