首页 文章

编码产品密钥

提问于
浏览
0

好的,这是一个关于编码概念的问题 . 我已经看到很多关于如何实现产品密钥的问题,我知道如何做到这一点,这个问题与什么有关,而不是如何 .

好的,这是关于我正在做什么然后我的问题的背景故事 . 我的应用程序Ultimate Diagnostic Suite即将推出进行测试 . 我想要实现一个产品密钥(我知道如何做到这一点) . 我对如何做到这一点感到很沮丧 .

产品密钥:7FD8-S89D-8746G-HUSJ

产品密钥:example@example.com

我知道如何做一个普通的产品密钥,但是有了第一个选项,我有一个可以为我生成密钥的随机数生成器,然后我可以将它们添加到数据库并检查产品密钥,这很简单 . 我唯一的问题是,如果有100万人下载应用程序,那么就是100万个产品密钥 . 这将占用比应用程序更多的空间 .

但是,如果我使用产品密钥的电子邮件形式,并且某人下载了该应用程序,那么它将进行数字签名,并且将省略该100万行产品密钥文件 . 我的问题是:

如果我使用电子邮件表格(数字签名),我将如何清除垃圾邮件 . 此外,我知道我将为授权连接一些事件 . 我只需要一个起点 . 这是为@符号后的结尾,例如:

您将有两个文本框,一个文本框将是 txtUser.Text ,另一个与电子邮件结尾的文本文件进行比较将是 txtEmailEndings.Text 所以简而言之,如果电子邮件的结尾为:

*@163.com 
*@aichyna.com 
*@berahe.info 



if (txtEmailEndings.Text == dbNotAllowed.Text)
{
  messagebox.Show("Please use a valid email, i.e, Gmail, Outlook, AOL");
}
else if (txtEmailEndings != dbNotAllowed.Text)
{
  // do something to allow access to full program
}

根据我的概念,我将列出已知的垃圾邮件机器人的高风险电子邮件结尾列表 . 我认为这会减少垃圾邮件机器人,但任何电子邮件都可以用于垃圾邮件机器人 .

我唯一的另一个选择是收取固定费用,这可以追溯到 Flat Fee = Product Key . 带有永无止境的产品密钥 . 我完全不希望只有一个产品密钥,它可以被利用 .

这不是任何特定的应用程序,如WinForms或WPF,这个概念可以用于两者 . 这就是列出标签的原因 .

任何问题或意见都会有很大帮助 . 我正在使用数字签名的概念,即Microsoft从产品密钥迁移到数字签名的方式 .

1 回答

  • 1

    当用户购买包含RSA签名的应用程序时,我会使用json文件作为您发送的许可证文件 . 您的应用程序将具有RSA密钥的公钥部分,它将用于验证许可证的签名,并且您的服务器将具有用于签署许可证文件的密钥 .

    系统是分散的,用户可能会泄漏许可证文件,但您可以在检查更新时向Web api发送计算机标识符,如果检测到许多不同的计算机共享相同的许可证,则将许可证标记为非活动状态 .

    将RSA密钥的公钥部分存储为base64,以便更难找到并替换为十六进制编辑器 . 此外,您可能希望混淆二进制文件 .

    看看这个项目:https://github.com/dnauck/Portable.Licensing/blob/develop/README.md

    您可以使用Recaptcha和电子邮件验证来防止垃圾邮件 .

    您还可以提供随机产品密钥,这些密钥由您的api转换为签名的许可证文件 . 这些密钥具有有限的激活(存储在服务器端)并且与机器标识符相关联 .

相关问题