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

标签 objective-c osx-snow-leopard

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

我在想以下场景:

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

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

最佳答案

您可以使用非对称加密和散列来实现此目的:

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

关于objective-c - 如何生成序列号(注册号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3130034/

相关文章:

ios - 是否可以在 iPhone 中使用 AVAudioPlayer 更改音频播放速度?

iphone - MonoTouch - 类型加载异常,更新的程序未在模拟器中注册

cocoa - 在 QTMovie 上调用播放会导致 Snow Leopard 上的屏幕保护程序停用

ios - 这个返回参数是什么意思?

objective-c - 为什么 Apple 的 NSURLConnectionDelegate 协议(protocol)引用文档似乎缺少内容?

iphone - 如何使用 UIBezierPath 在 Cocoa Touch 中绘制多边形

cocoa - NSTableCellView 和雪豹

macos - 找不到 Mac X 框架内核

macos - 相当于 mac os X 上的 strace -feopen <command>

ios - 为什么 NSDateFormatter 在巴西时区为 19/10/2014 返回 null?