如何生成序列号(注册号)?

时间:2010-06-28 04:17:50

标签: objective-c osx-snow-leopard

如何生成用户可以用来注册应用程序的序列号?

我在考虑以下情况:

  • 用户试用该应用程序。
  • 当他们想要购买应用程序时,他们会选择一个菜单项。
  • 应用程序生成一个代码,然后将其传递到网站以购买该应用程序。
  • 用户输入从网站返回的代码。
  • 应用程序使用其生成的代码检查输入的代码。

如果用户丢失了序列号,或者在重新安装操作系统后复制了应用程序,他们将需要网站的代码,这将返回一个特殊的代码,允许应用程序获取为用户生成的原始代码机。

2 个答案:

答案 0 :(得分:9)

您可以使用非对称加密和散列来完成此任务:

  1. 您将公钥与应用程序捆绑在一起。
  2. 当用户购买应用程序时,他们会提供他们的姓名和电子邮件地址。
  3. 网站会对用户的姓名和电子邮件地址进行哈希处理,使用您的私钥对哈希进行签名,并在Base64中提供结果以方便输入。
  4. 当用户在您的应用程序中输入“代码”及其名称和电子邮件地址时,您的应用程序可以验证它是否由您的私钥(只有您/网络商店可以访问)签名,并且它与用户提供的名称和电子邮件相匹配。

答案 1 :(得分:2)

有几个开源项目,甚至不需要考虑这个问题。您可以专注于撰写用户实际购买的内容。有一个名为Aquatic Prime的开源框架用于生成序列号。有很多门户网站与Aquatic Prime一起使用,如Shine

当有一个非常好的解决方案时,我不喜欢写一些“新的”(特别是因为这些项目是免费的)