【发布时间】:2015-06-11 15:49:43
【问题描述】:
我需要使用密码登录服务 我需要在 Python 中做一些事情,但我不想将密码存储在代码中。
我做了一些研究,发现了 base64 编码。这看起来不错,但无论如何它都需要将密码存储在代码中。
>>> import base64
>>> encoded = base64.b64encode('data to be encoded') # password stored in the code
>>> encoded
'ZGF0YSB0byBiZSBlbmNvZGVk'
>>> data = base64.b64decode(encoded)
>>> data
'data to be encoded'
对于已经在 Python 中使用过密码管理的人来说,最好的选择是什么?将密码存储在文件中?只使用生成的b64encode() 字符串并在程序每次需要密码时对其进行解码?
【问题讨论】:
-
向用户询问密码并将其哈希值存储在数据库中....否则您需要以某种方式存储它...我喜欢使用看起来像 ascii 字符串的 base64string 和base64 将其解码为密码字节字符串 ....
-
我需要使用密码登录服务你能详细说明这部分吗?
-
此代码仅供您自己使用,还是您将分发它?我为后者使用的一个选项是允许用户创建一个本地文件来存储凭据(包括密码,如果他们愿意的话),然后要求他们在运行时输入他们不想存储在该文件中的任何内容-时间。然后从存储库中排除我的该文件版本。
-
没有好办法。您可以以某种加密格式存储密码(例如您的
base64),但您还必须在源代码中包含如何解密,那么有什么意义呢?我只需要通读您的'ZGF0YSB0byBiZSBlbmNvZGVk'和data = base64.b64decode(encoded)示例,我就可以轻松恢复纯文本。