我使用此方法创建的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)不可读?
答案 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),但如有必要,将回退到自己的加密存储区。