我编写了一个简单的程序,提示用户输入一些值,然后在用户再次与之交互时将这些值用作一种密码。
如何永久保存该值而不使用Pickle?对于如此少的数据线,数据库太庞大了。文本文件可能无法抵御可能的入侵者。
有没有办法以相对安全的方式永久存储数据?
答案 0 :(得分:0)
有几个选项需要考虑,最好的选择取决于项目的范围。它是你和其他一些人使用的宠物项目,还是一些可以公开访问的严肃的东西?
文字档案
从它的外观来看,(文本)文件是最佳选择。使用适当的加密哈希(SHA256
或更好)来散列密码,并使用用户名将其存储在文本文件中。
登录时,请使用text-file中的密码从登录表单中检查哈希密码。
根据具体情况,您可能需要查看bcrypt / scrypt以获取密码哈希。 确保文本文件位于网页的root-dir之外,并且只能由需要它的进程读取/修改/写入。
微型数据库
或者你可以使用数据库。 Sqlite的开销非常低。您没有写入文本,而是写入仍然是1个文件大的数据库。
打开和更新文本文件所需的代码可能与sqlite连接一样大。 如果你使用某种类型的框架,可能有一个ORM,它具有Sqlite连接的需求。如果您想要升级到更大的数据库,这是理想的选择。