我有一个小小的疑问,我试图让我的应用程序尽可能安全,所以我们是否可以制作一个只运行一次的安装文件,之后它不应该在任何电脑上运行。这听起来很愚蠢,但有可能吗?我没有要显示的代码,我只想知道我们可以用 JAVA 制作吗
5 回答
设置向导实际上并不控制它何时运行或是否运行。它也不控制人们希望它运行多少次。所以你的问题的直接答案是“不”;但是,让设置向导检查之前运行的“工件”是很有可能的(甚至是可取的)。
如果您有一个安装向导检测到该向导可能是唯一可能的创建者的文件或设置,然后在检测到它时关闭,那么您可以有效地防止向导的关键部分运行两次。
您可以让应用程序连接到网站以检查它是否已安装,但是在安装时需要互联网连接。
然后在安装过程中,您将发送安装通知。
我使用这样的系统。在下载时,它会生成一个序列号并将其插入到一个文件中,该文件稍后会被安装系统读取并用于在安装期间“注册”产品。
不会。您可以采取一些合理的步骤来使其变得更加困难,但是任何真正有兴趣破坏您的安全机制的人都可能能够做到。
您创建的任何内容都可以复制和执行任意次数,即使运行的副本随后会自行删除。
这导致每次运行安装程序时都需要对某些服务器进行外部身份验证。然而,这也不能保证有效,只需看看视频游戏 DRM 是多么容易/快速破解为例。
您可以从包含 true 或 false 的文件中读取。将向导的启动包装在 if 语句中以仅在此变量为 false 时执行,然后在向导结束时将文件更改为 true。如果您想让它更安全,您可以加密文件然后解密以查看它的内容。
出于多种原因,“是否可能”始终是一个棘手的问题。
我认为您不太可能创建它以按照您想要的方式工作,仅仅因为您正在谈论一个安全问题,并且如果有人对违反您的安全措施非常感兴趣,那么会有更好的人打破比你在锁定。
你的软件是否会激发这种兴趣,我无从得知。安全方面的重要问题是“我能否让这个足够安全以达到我的目的?”我们对您的要求、预期的威胁模型等了解不够。
总而言之,我能给你的最好答案是:如果你想把安全做好,不要自己做。去找专业人士,让他们保护它。您想对安全性有足够的了解以评估专业人士,因此您有一些希望得到您所支付的费用,但您不想尝试编写该代码。你可能擅长编写电子表格或邮件客户端或任何你正在编写的东西,但你显然不擅长编写安全性,而且这不是你一天就能学到的东西。