如何在程序中隐藏密码?
How do you hide a password in a program?
我正在 python 为一个学校项目编写一个程序,它的一个特点是它可以发送电子邮件。
但是,为了从该程序发送电子邮件,您必须登录电子邮件帐户,这意味着我的该帐户密码包含在该程序的一个变量中。
因为这是一个学校项目,我必须将它发送给与我一起工作的人,他们将能够阅读代码,但我真的不希望我的密码被公开留在变量中给他们看。
有什么办法可以隐藏或者加密不让别人看到吗?
很遗憾,答案是否定的。
这是一个很大的安全问题,也是人们“入侵”程序的一种非常常见的方式(他们 post public 存储库中的一些代码带有 API 密钥或里面有密码,人们可以拿走它并用它做他们想做的事)。
以下是此问题最常见的解决方案:
使用服务器。这对你来说可能不是很可行,因为它是针对学校项目的,但在更大的项目中,我们通常会向我们的服务器(知道密码)发送请求,然后它会从那里发送请求。服务器上的代码(如果保护得当)被认为是中等安全的。即使如此,将密码放在代码中也是非常糟糕的设计。由于最终用户看不到服务器的代码,他们将无法获得该密码。请注意,这是过于简单化了,保护服务器安全不仅仅是我提到的。
使用环境变量。环境变量可以在您的终端中设置,并将信息存储在您自己的计算机上,而不是在程序中。然而,为了让它工作,每个用户都需要在他们自己的终端中设置他们的环境变量,如果你想共享一个帐户,这不是要走的路,因为那样你就必须给他们密码无论如何。 This 是一篇讨论环境变量以及如何设置它们的好文章。在python中,可以使用os
模块获取变量(os.environ["ENV_VARIABLE_NAME"]
)。
一般的经验法则是永远不要在您的源代码(对于客户端)中放置您不希望全世界看到的任何内容。可以从代码中获取此信息,并可能在未来导致大问题。
如果您有任何其他问题,请告诉我!
我正在 python 为一个学校项目编写一个程序,它的一个特点是它可以发送电子邮件。
但是,为了从该程序发送电子邮件,您必须登录电子邮件帐户,这意味着我的该帐户密码包含在该程序的一个变量中。
因为这是一个学校项目,我必须将它发送给与我一起工作的人,他们将能够阅读代码,但我真的不希望我的密码被公开留在变量中给他们看。
有什么办法可以隐藏或者加密不让别人看到吗?
很遗憾,答案是否定的。
这是一个很大的安全问题,也是人们“入侵”程序的一种非常常见的方式(他们 post public 存储库中的一些代码带有 API 密钥或里面有密码,人们可以拿走它并用它做他们想做的事)。
以下是此问题最常见的解决方案:
使用服务器。这对你来说可能不是很可行,因为它是针对学校项目的,但在更大的项目中,我们通常会向我们的服务器(知道密码)发送请求,然后它会从那里发送请求。服务器上的代码(如果保护得当)被认为是中等安全的。即使如此,将密码放在代码中也是非常糟糕的设计。由于最终用户看不到服务器的代码,他们将无法获得该密码。请注意,这是过于简单化了,保护服务器安全不仅仅是我提到的。
使用环境变量。环境变量可以在您的终端中设置,并将信息存储在您自己的计算机上,而不是在程序中。然而,为了让它工作,每个用户都需要在他们自己的终端中设置他们的环境变量,如果你想共享一个帐户,这不是要走的路,因为那样你就必须给他们密码无论如何。 This 是一篇讨论环境变量以及如何设置它们的好文章。在python中,可以使用
os
模块获取变量(os.environ["ENV_VARIABLE_NAME"]
)。
一般的经验法则是永远不要在您的源代码(对于客户端)中放置您不希望全世界看到的任何内容。可以从代码中获取此信息,并可能在未来导致大问题。
如果您有任何其他问题,请告诉我!