如何使Python永久记住变量或列表? (没有泡菜!)

时间:2014-07-13 17:27:30

标签: python

我编写了一个简单的程序,提示用户输入一些值,然后在用户再次与之交互时将这些值用作一种密码。

如何永久保存该值而不使用Pickle?对于如此少的数据线,数据库太庞大了。文本文件可能无法抵御可能的入侵者。

有没有办法以相对安全的方式永久存储数据?

1 个答案:

答案 0 :(得分:0)

有几个选项需要考虑,最好的选择取决于项目的范围。它是你和其他一些人使用的宠物项目,还是一些可以公开访问的严肃的东西?

文字档案

从它的外观来看,(文本)文件是最佳选择。使用适当的加密哈希(SHA256或更好)来散列密码,并使用用户名将其存储在文本文件中。

登录时,请使用text-file中的密码从登录表单中检查哈希密码。

根据具体情况,您可能需要查看bcrypt / scrypt以获取密码哈希。 确保文本文件位于网页的root-dir之外,并且只能由需要它的进程读取/修改/写入。

微型数据库

或者你可以使用数据库。 Sqlite的开销非常低。您没有写入文本,而是写入仍然是1个文件大的数据库。

打开和更新文本文件所需的代码可能与sqlite连接一样大。 如果你使用某种类型的框架,可能有一个ORM,它具有Sqlite连接的需求。如果您想要升级到更大的数据库,这是理想的选择。