【问题标题】:Is it possible to make a program that can read from a file, but you can't open the file from outside the program?是否可以制作一个可以从文件中读取的程序,但您不能从程序外部打开文件?
【发布时间】:2020-12-19 06:24:19
【问题描述】:

基本上,我已经建立了一个登录系统。

  • 用户第一次使用登录系统时,会创建一个文本文件,并在用户使用“记住密码?”时将用户名和密码保存在那里。功能。

  • 软件第二次使用系统时,如果用户之前使用了“记住密码?”,系统已经输入了用户名和密码。功能。

问题是,存储密码和用户的文本文件只需转到文件夹并双击它即可访问,出于安全原因,这很糟糕。

是否可以使文本文件不能在程序外访问?

【问题讨论】:

  • 您好!嗯....我不想咄咄逼人,但我可以问你为什么不考虑数据库?可能像sqlite?可能您有理由需要将它放在.txt 文件中。谢谢!
  • 不一定是txt,我是一个非常初级的程序员,在一个项目的基础上学习。我现在除了txt什么都不知道。此外,我不需要非常安全的数据库,日志系统存储在本地(在使用该程序的人的计算机上)。我需要很少的安全性,只是最低限度,因为它是一个小脚本。我要去 google sqlite 看看我得到了什么。谢谢!!

标签: python security


【解决方案1】:

这是不可能的,只要你在磁盘上存储数据,数据就一直是可读的。

实际上,当您使用 .txt 时,这意味着您希望它对其他人可读。如果您正在寻找安全性,则必须将您的内容(帐户和密码)编码为只有您的程序可以读取的其他内容。 类似于将“A”更改为“B”,将“1”更改为“0”,将“0”更改为“7”...... 或现代登录系统使用的另一种方法:Hashing your Password

【讨论】:

    【解决方案2】:

    基本上,没有办法将密码以明文形式安全地存储在文件系统中的文件中。

    您可以安排一些事情,以便文件只能由系统上的特定帐户读取。但是,具有管理员权限的人将(可能)能够执行赋予自己访问权限的事情。在某些情况下,很可能还有其他方法可以破坏文件系统的安全性。

    理想的解决方案是不存储密码。即使用私钥加密存储也是一个坏主意。

    创建和存储密码的“盐渍哈希”可以是安全的......前提是“坏人”无法在密码字符被哈希之前捕获它们,但我认为这对你没有帮助......因为你显然需要能够恢复实际密码。

    也许最好的方法是调查客户操作系统或网络浏览器提供的“密码安全”或“钥匙链”产品。不幸的是,这将是特定于平台的。

    您也可以只是“隐藏”包含密码的文件,或者(可逆地)隐藏密码。但这是不安全的。通过对代码隐藏密码所采取的步骤进行逆向工程很容易将其击败。

    【讨论】:

    • 是的......但是存储加盐密码哈希的目的是使计算上难以从哈希中猜出原始密码。 (根据我的编辑,这可能不是解决 OP 问题的方法。)
    • 生成的程序要转成exe文件,可以从exe文件中读取源代码吗?如果不能,我可以对密码进行哈希处理,然后收工。
    • 解决方案应该取决于安全级别。例如,如果密码应该阻止您的伴侣访问圣诞礼物列表,那么简单的密码编码就足够了(除非他们是非常有决心和优秀的黑客)。
    • 这是一个自动解决方案,可以更新本地电子商务上的列表(您必须每天手动执行此操作,这很烦人),它真的不需要那么多安全性,因为帐户真的不值得窃取,但我必须保证最低级别的安全性,因为人们倾向于对所有内容使用相同的密码......
    • “我必须保证最低级别的安全,因为人们倾向于对所有事情使用相同的密码......” - 保证“最低级别的安全”是模糊和模棱两可的要求,但保证密码不会从用户机器上被窃取的唯一方法是不存储它。 (但使用平台的密钥环可能就足够安全了。)
    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 2018-05-06
    • 2011-06-27
    • 1970-01-01
    相关资源
    最近更新 更多