python--getpass密码非明文显示

本文介绍如何利用Python的getpass模块解决密码明文显示问题,通过与smtplib结合,实现邮件发送功能,增强安全性。getpass模块在终端环境下有效,避免密码泄露。

我们在执行input('请输入你的密码:')时候,会显示明文,而getpass就解决了明文显示的问题:

 1 我们在执行input('请输入你的密码:')时候,会显示明文,而getpass就解决了明文显示的问题:
 2 
 3 import getpass
 4 import smtplib
 5 from email.mime.text import MIMEText
 6 
 7 class Sendmain(object):
 8     def __init__(self,fromuser,pwd,touser,title,content,host='smtp.sina.cn',port=25):
 9         self.touser=touser
10         self.content=content
11         self.title=title
12         self.host=host
13         self.port=port
14         self.fromuser=fromuser
15         self.pwd=pwd
16 
17     def send_main(self):
18         msg=MIMEText(self.content,'plain','utf-8')
19         msg["Subject"]=self.title
20         msg['From']=self.fromuser
21         msg['To']=self.touser
22 
23         try:
24             smtp=smtplib.SMTP(self.host,self.port)
25             smtp.login(self.fromuser,self.pwd)
26             smtp.sendmail(self.fromuser,self.touser,msg.as_string())
27             smtp.quit()
28             print('邮件发送成功')
29 
30         except smtplib.SMTPException as e:
31             print(e)
32 
33 if __name__ == '__main__':
34     fromuser=input('请输入发送人账号:')
35     pwd=getpass.getpass("输入你的密码:")
36     touser='xxxxxxxxx@qq.com'
37     title='密码练习'
38     content='getpass练习'
39     send=Sendmain(fromuser,pwd,touser,title,content)
40     send.send_main()

 

执行结果入图:

 

要注意的是:在执行的时候,只能在终端里进行,否则getpass无效

转载于:https://www.cnblogs.com/xiao-erge112700/p/11497682.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值