0

如果我们强行打开它,我使用这种方法创建的腌制文件在文本编辑器中是可读的,

import pickle,os
print os.path.split(__file__)[0]
storloc= os.path.normpath(os.path.join(os.path.split(__file__)[0],"test.pkl"))

newD={"String":"this is the world", "int":1,"float":1.5}
print newD
print storloc
d = open(storloc, 'wb')
pickle.dump(newD,d)
d.close()

如何在任何文本编辑器中使腌制文件(test.pkl)不可读?

4

2 回答 2

0

只需在转储调用中添加第三个参数 - 它是协议参数,只有默认的一个 (0) 是 ASCII 编码的 - 协议 1 和 2 只是二进制的,应该在文本编辑器中进行修改。

但是,这并不安全——如果您不想看到密码,请检查 pycripto,并对您的文件进行一些适当的加密。

于 2012-11-14T17:15:32.980 回答
0

尝试使 Python 泡菜等简单格式对密码安全是一种愚蠢的游戏。

请改用该keyring软件包并将其留给操作系统以安全地存储您的密码。

import keyring

username = # Obtain a stored username or ask the user
password = keyring.get_password('your_application_name', username)

if password is None or verify_password_failed:
    password = # Obtain a password from the user
    keyring.set_password('your_application_name', username, password)

keyring软件包使用操作系统提供的密钥环(OS X、Windows、KDE、Gnome),但如有必要,将退回到它自己的加密存储。

于 2012-11-14T17:28:31.963 回答