我有一个发送电子邮件的Python3程序。它从配置文件中读取变量,其中一个是发送电子邮件的电子邮件帐户的密码。现在,它是明文,但它不应该,所以我正在寻找隐藏它的方法。
我考虑直接写入将md5应用于密码的结果,例如:
password = 'write_here_the_password_encrypted'
但是以下代码不起作用:
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username, password)
server.sendmail(from_email, to_emails, msg)
server.quit()
如果密码已加密,是否还要使工作成为server.login(username, password)
行?
答案 0 :(得分:0)
login
方法只需要普通密码,而不是它的一些哈希值,因此唯一可以使其工作的方法是 - 在传递给login()
之前解密密码。
但是由于md5是单向散列函数(或打算是单向),因此一旦将其编码为md5散列,就无法解码密码。但即使你可以,任何有权访问你配置的人都可以。
您需要做的是将密码和其他敏感信息分隔到单独的文件中,并将其存放在安全的位置,以防未经授权的人员访问。