如何在任何文本编辑器中使pickle文件不可读

时间:2012-11-14 17:06:50

标签: python pickle

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

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()

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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),但如有必要,将回退到自己的加密存储区。