我的应用程序免受盗版的安全依赖于我的数据库中的字段。用户必须激活应用程序,这写在我的数据库中购买。但问题是,如果一个新用户安装了我的应用程序,并替换了某个已购买密钥的人的所有数据库,则该应用程序也会变得活跃,而无需从我这里购买密钥。
有没有可能用特定的设置来标记要识别的数据库?
谢谢弗尔坎
发布于 2011-12-25 18:15:29
由于几乎总是有人能够找到一种方法来击败您设置的安全措施,因此您的目标应该是一种解决方案,该解决方案可以防止大多数不成熟的用户能够在不付费的情况下使用您的软件,同时又不会给合法用户带来太大的痛苦。
为此,我认为在数据库中存储状态将是有问题的,因为复制数据库很容易。如果必须这样做,最好的方法是从HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography注册表项获取MachineGUID,然后使用双重或单向加密算法对该值进行加密,并将其存储在数据库中。
当您的应用程序启动时,您可以获取MachineGUID并对其进行加密,然后将加密的值与数据库值进行比较(如果是单向加密),或者解密数据库值并将其与注册表值进行比较(如果是双向加密)。
您需要提供一种机制,允许用户在必须将数据库移动到另一台计算机(即小型windows应用程序)时更新注册,但您可以要求他们在更改注册之前从您那里获得特定的注册码。
https://stackoverflow.com/questions/8628526
复制相似问题