file - 在 Windows/Mac OS X/Linux 上在哪里创建/保存许可证信息/试用的 secret 文件?

标签 file licensing hidden invisible

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

6年前关闭。



Improve this question




我正在编写一个商业产品,它使用简单的注册机制,并允许用户在购买前使用该应用程序进行演示。
我的应用程序必须在某处存储注册信息(如果输入)和/或首次启动的日期,以计算用户是否仍在演示/试用期内。虽然我几乎完成了注册机制本身,但我现在必须找到一种将注册信息存储在用户磁盘上的好方法。
最明显的想法是将试用期存储在首选项文件中,但由于用户倾向于不时删除/修改那些,因此将注册信息保存在单独的、更隐藏的文件中可能是个好主意。
所以这是我的问题:在 Windows、Mac OS X 和 Linux 上保留和创建此类隐藏文件的最佳位置/策略是什么?到目前为止,这是我想到的:
Linux/Mac OS X
当涉及到用户可以写入文件的位置时,大多数类 Unix 系统都被锁定了。在大多数情况下,这只是 /tmp目录和用户的主目录。
我想这里最简单的方法可能是创建一个带有点前缀的文件以使其不那么明显,然后给它一个名称,该名称不会使其与我的应用程序相关联。
视窗
可能很像 Linux/Mac OS X - 在文件系统权限方面,最近的 Windows 版本变得更加严格。

不管怎样,我想听听你的想法和想法。如果您过去已经实现了类似的东西,那就更好了。
谢谢!

更新
对我来说,这些文件的位置比讨论这种复制保护方式是好是坏的问题更相关。

最佳答案

谁在乎你把文件放在哪里。它是您要保护的内容。

在服务器端,使用私钥加密/签署用户信息并将其分发给用户。通过电子邮件发送许可证文件,让应用程序连接并下载它,无论如何。

在您的应用程序中,包含公钥。如果您无法验证/解密文件,则失败。如果可以,请继续运行。如果您无法验证许可证文件,您只需要重新连接到服务器。您只需要最原始的“许可服务器”来支持这一点。如果您通过电子邮件发送文件,“许可证服务器”只是一个脚本,用于加密字符串并向用户发送电子邮件。

没有什么可以保护您免受对您的应用程序进行复杂尝试的攻击。但是此解决方案将拒绝临时用户破坏您的许可证的能力。

如果您想防止用户多次重新注册或与 friend 共享许可文件,请将其MAC地址服务器端记录在许可文件中。就我个人而言,我不会这样做。它不会阻止老练的黑客,而是由您决定在猫捉老鼠游戏中花费多少时间。

关于file - 在 Windows/Mac OS X/Linux 上在哪里创建/保存许可证信息/试用的 secret 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737511/

相关文章:

java - java watchservice实现重命名和删除

python-2.7 - python : How to Modify metadata of Microsoft Office files?

MySQL 许可

qt - 软件评估 - 许可证

html - 为什么溢出-y :hidden of HTML-lists makes bullet/number to be invisible?

javascript - JS中解析JSON并比较键值

java - RSA加密-AES key 解密并存储在文件中

c# - 在另一个程序中运行一个程序?

c++ - 用于 linux 的 c 程序,用于获取设备的序列号,用于非 root 用户

java - 如何从一个托管 bean 中获取一个值并使用它在回发时设置另一个托管 bean 的属性