如何在Delphi中生成用户注册密钥?

Arn*_*old 12 delphi user-registration

对于我当前的应用程序,我使用一个非常简单的方案来注册新用户.当新用户注册时,将使用密钥发送电子邮件.为了检查这个密钥是否正确,计算了一种校验和(3-7-11数字检查),它被添加为密钥的最后2位数.没有检查密钥的任何进一步有效性.应用程序不检查密钥是否失效.

这是一个简单的方案,有人花时间通过反汇编代码破解它.我想为我的新应用程序使用另一种方案,但我不确定最好的方法是什么.

  • 有没有我可以使用的Delphi库?
  • 是否可以在密钥中使用一些用户提供的信息,比如他的名字?
  • 是否有注册用户的最佳实践方式?
  • 还有别的我忘了吗?

一些注册方案要求应用程序每次在网络服务器检查密钥是否仍然有效.我宁愿不去那么远,因为这需要在服务器端付出很多努力.

任何有关注册新用户的强大方式的建议或链接都​​是非常受欢迎的.

klu*_*udg 11

更好的注册方案基于非对称密码术(通常是RSA算法).这个想法是只有你可以生成一个有效的密钥,而每个人都可以检查一个密钥是否有效(非对称加密允许这个技巧).因此,当您在种子上看到带有有效密钥的程序时,您只需取消对获得此密钥的客户的支持.

  • 然后有人修补IsValidKey函数以始终返回true. (5认同)
  • @David从技术上讲,密钥对于将来的更新无效.就这些.愿意升级的客户应与您联系.其他一切都取决于你 - 你可以警告他并给他一个新的钥匙,或采取不同的行动. (3认同)
  • +1有关RSA特定用途的示例或链接? (2认同)
  • @DavidHeffernan如果你只是撤回支持并且不使用该软件就不可能.取决于您在销售许可证时提供的内容,是否可以将其排除在进一步更新之外,但除非您向他们出售终身许可证,否则应该可以撤销支持周期之外的更新/升级.再说一次,IANAL ...... (2认同)