1

我正在尝试创建受密码保护的服务器,但是当我输入密码时,输出不允许我输入密码。所有其他输入工作只是 getpass不允许我输入输入。请帮忙

import smtplib, json_store_client, getpass, hashlib, datetime, sys
from termcolor import colored
from time import sleep, ctime 


with smtplib.SMTP('smtp.gmail.com',587) as smtp:
    smtp.ehlo() #starts email procedure
    smtp.starttls() #encrypts
    smtp.ehlo() #starts the email procedure again
    pw=getpass.getpass(colored("Enter password:\n","green"))
    global attemptpw
    attemptpw = 0
    try:
        smtp.login("********@gmail.com",pw)
        #**** is my email, I just don’t want to show it
        x=chat("[MOD] {} ".format(opt2),True
     except:
        print(colored("Invalid Admin password","red"))
        sleep(1)
      else:
        print("password entered:",pw)

对于我正在使用的代码:
repl.it

编辑: 我的代码在这里: repl.it/codingandmemes

4

1 回答 1

0

在 repl.it 中测试了您的原始代码并且它有效,只需print(pw)在该行之后添加pw=getpass.getpass(colored("Enter password:\n","green"))以进行验证。

getpass实现无回声功能(此处为文档),这意味着无论您键入什么,它都不会打印在屏幕上,您可能希望小点 (••••••) 代表您输入的每个字符作为密码,回显-free 根本没有任何意义,甚至连小点也没有。

这是在 unix 系统上广泛实施的一项功能,可以增加一点额外的安全性,这样其他人就无法知道您的密码长度,请参阅这篇文章

于 2019-11-15T15:00:41.597 回答