试图部署程序

时间:2013-04-04 20:59:37

标签: java deployment drm

我在这里遇到一个问题:我已经创建了一个应用程序,就像今年学校年鉴的计算机化/数字化版本。我想把这个程序只给那些购买了这本书的人。该程序是用java编程的,我可以做密钥代码/序列号/ cd键,但我不知道该怎么做。我不希望没有购买年鉴的人能够访问该计划,我不希望购买年鉴的人向他们的朋友提供密码/代码,以便他们可以使用它。 / p>

我们可以建立一个在线交易,以防需要年鉴但没有购买它的人可以以更便宜的价格获得该计划,但我们希望那些购买实际书籍的人免费。这是一个挑战,但我们可以在程序内部和在线进行数据库,但我不确定。

我考虑过的事情:

  • 加密文件
  • CD的
  • 用户名/密码
  • CD上的“自毁”文件
  • 和其他几个人

但我们所有的想法都不适用于我们想要的东西。

2 个答案:

答案 0 :(得分:0)

不确定它是否有帮助,但最近的一些游戏已经实施了在线实时客户端/服务器验证,以确保许可证是合法的,即使在单人游戏中(例如,ubisoft的定居者7初始版本)。您至少可以保证当时只使用该软件的一个副本。

可能有帮助的主题:

https://stackoverflow.com/questions/5039395/copy-protection-and-license-expiration

Making commercial Java software (DRM)

答案 1 :(得分:0)

最容易想到的方法(尽管从可用性的角度来看并不是很好):

  • 该应用程序需要访问Internet才能安装运行。
  • 每次安装应用程序时,它都会为当前计算机生成一个唯一的ID并将其发送到服务器。
  • 每次运行应用程序时,它会将服务器上的ID与当前计算机的ID进行比较。
  • 如果两者匹配,则运行;否则它会通知用户该软件已安装在另一台PC上。
  • 每次用户安装软件时,都会覆盖服务器上的ID(监控安装,而不是卸载)。
  • 通过这种方式,最后一个安装人员可以运行但是将其他人踢出去。

人们仍然可以作弊,但它要求他们每次想要运行它时都会反复重新安装软件并且这很烦人。烦恼杀死盗版:)

奖励积分:

  • 每次软件检测到ID不匹配时,都可以购买价格低于$ X"的许可证。如果产品足够好并且价格足够低,人们就会付钱。