How to make Python remember permanently a variable or a list? (No Pickle!)
我编写了一个简单的程序,它提示用户输入一些值,然后在用户再次与之交互时将这些值用作某种密码。
如果不使用pickle,如何永久存储该值?一个数据库对于如此少的数据行来说太大了。文本文件对可能的入侵者可能没有那么安全。
是否有一种以相对安全的方式永久存储数据的方法?
有几个选择要考虑,最好的选择取决于项目的范围。它是你和其他人使用的宠物项目,还是一些重要的公共物品?
文本文件
从外观上看,(文本)文件是最好的选择。使用适当的加密散列(
登录时,检查登录表单中的哈希密码和文本文件中的密码。
根据具体情况,您可能需要查看bcrypt/scrypt进行密码散列。确保文本文件在网页的根目录之外,并且只能由需要它的进程读取/修改/写入。
微型数据库
也可以使用数据库。sqlite的开销非常低。不是写入文本,而是写入一个仍有1个文件大的数据库。
打开和更新文本文件所需的代码可能与sqlite连接一样大。如果您使用某种框架,那么可能有一个ORM,它具有对SQLite连接的需求。如果您想升级到更大的数据库,则非常理想。