仅将数据库标记为特定设置 [英] Marking databases for a particular setup only

查看:70
本文介绍了仅将数据库标记为特定设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我的盗版应用程序安全性取决于数据库中的字段.用户必须激活应用程序,该应用程序在我的数据库中写有Bought.
但是问题是,如果新用户安装了我的应用程序并从某个购买了密钥的用户那里替换了所有数据库,那么该应用程序也将变为活动状态,而无需从我这里购买密钥.

我是否有可能用特定的设置将数据库标记为可以识别?

谢谢
Furqan

Hi,
My application security from piracy depends upon fields in my databases. User has to activate the application, that writes Bought in my database.
But the problem is if a new user installs my application and replaces all databases from some one who has bought key, the application also becomes active without buying key from me.

Is there any possibility that I could mark the databases to be recognized with the particular setup?

Thanks
Furqan

推荐答案

这是一种取决于硬件ID的方法:

使用本文:如何获取硬件信息(CPU ID,主板信息,硬盘序列号,系统信息,... ) [ ^ ]找出答案如何收集CPU ID和硬盘序列号.然后根据这些数字进行key并将生成的密钥显示给客户,并要求他们告诉您生成的密钥(也可以考虑将获取的密钥保存在Windows Registry或其他地方).

您的程序和客户服务应用程序中应该有一个函数(例如f(key)),该函数可以获取密钥并生成应告知客户的序列号.客户在其旁边将f(key)作为序列号输入到您的应用程序的注册部分.

在应用程序启动时,您应该检查存储在数据库或Windows注册表中的f(key),如果不匹配或不存在,请退出而没有任何消息(这有助于不向饼干揭示决策点) ;)).

内容非常简短,但希望对您有所帮助.
Here is one approach that depends on hardware IDs:

Use this article : How To Get Hardware Information (CPU ID, MainBoard Info, Hard Disk Serial, System Information , ...)[^] to find out how to collect CPU ID and HDD serial number. Then make a key according to those numbers and show the generated key to your customers and ask them to tell you that generated key (also consider saving the obtained key in Windows Registry or somewhere else).

You should have a function(say f(key)) in your program and your customer service application that gets a key and generates a serial number which should be told to the customer. And customer by its side enters the f(key) as serial number into registration part of your application.

And in your application startup you should check the f(key) which is stored in your database or windows registry and if doesn''t match or doesn''t exist just exit without any message(It helps not revealing the decision point to the crackers ;) ).

It was very brief but I hope that it helps you.


我认为您应该保护应用程序,而不是仅保护数据库.通过使用产品密钥,您将在没有适当许可的情况下很难使用该软件.例如,请参阅:许可证密钥生成 [
Instead of protecting only the database I think you should protect the application. By using product key you would make it hard(er) to use the software without a proper license. For example, see: License Key Generation[^].

Securing the database is also a further step you can take. However, if you plan to store just some text in the database which tells if the software is genuine or not, it''s easily broken. One possibility is to create an (encrypted if you like) stored procedure which checks the client product key against what''s stored in the database (again the client product key would still be used). Only one key would be allowed so if there are more keys or the key doesn''t match the client key, then the application would refuse to work. This won''t protect from piracy in whole, it would just check the match of the client key and the key stored in the db.


这篇关于仅将数据库标记为特定设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆