我正在用python为一个学校项目编写一个程序,它的功能之一是可以发送电子邮件。
但是,为了从程序发送电子邮件,您必须登录到电子邮件帐户,这意味着我的该帐户密码包含在程序的变量中。
因为这是一个学校项目,我必须把它发给与我合作的人,他们可以阅读代码,但我真的不想把我的密码公开留在变量中让他们看到。
有没有什么方法可以隐藏或加密它,让其他人看不到它?
不幸的是,答案是否定的。
这是一个大的安全问题,也是人们拥有程序的一种非常常见的方式;被黑的";(他们在公共存储库中发布一些代码,其中包含API密钥或密码,人们可以使用这些密钥或密码做他们想做的事情(。
以下是这个问题最常见的解决方案:
-
使用服务器。这对你来说可能不太可行,因为这是一个学校项目,但在更大的项目中,我们通常会向我们的服务器(它知道密码(发送请求,然后它会在那里发送表单。服务器上的代码(如果保护正确(被认为是中等安全的。即使如此,在代码中输入密码也是非常糟糕的设计。由于最终用户看不到服务器的代码,他们将无法获得该密码。请注意,这是一个过于简单的描述,保护服务器的安全不仅仅是我提到的。
-
使用环境变量。环境变量可以在您的终端中设置,并将信息存储在您自己的计算机上,而不是程序中。然而,为了让它发挥作用,每个用户都需要在自己的终端中设置他们的环境变量,如果你试图共享一个帐户,这不是一种方法,因为无论如何你都必须给他们密码。这是一篇很好的文章,讨论了环境变量以及如何设置它们。在python中,可以使用
os
模块(os.environ["ENV_VARIABLE_NAME"]
(获取变量。
一条经验法则是,永远不要在源代码中(针对客户端(放任何你不想让全世界看到的东西。从代码中获取这些信息是可能的,这可能会在未来引发重大问题。
如果你还有其他问题,请告诉我!