首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码产品密钥

编码产品密钥
EN

Stack Overflow用户
提问于 2018-12-09 13:57:31
回答 1查看 112关注 0票数 0

这是一个关于编码概念的问题。我见过许多关于如何实现产品密钥的问题,我知道如何实现,这个问题与什么有关,而不是如何实现。

好的,这是一个关于我正在做什么的背景故事,然后是我的问题。我的应用程序终极诊断套件,准备推出测试。我想实现一个产品密钥(我知道如何做到这一点)。我在如何做这件事上左右为难。

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

产品密钥: example@example.com

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

但是,如果我使用产品密钥的电子邮件表单,并且有人下载应用程序,那么它将被数字签名,并将省略该100万行产品密钥文件。我的问题是:

如果我使用电子邮件表单(数字签名),我将如何清除垃圾邮件。另外,我知道我会为授权而安排一些活动。我只需要一个起点。这是@符号后面的结尾,例如:

您将有两个文本框,一个文本框将是txtUser.Text,另一个文本框与电子邮件结尾的文本文件相比将是txtEmailEndings.Text,因此简单地说,如果电子邮件的结尾为:

代码语言:javascript
复制
*@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,这一概念可以用于两者。这就是为什么列出标签的原因。

任何问题或评论都会很有帮助。我使用的概念作为数字签名,微软从产品键迁移到数字签名的方式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-09 16:26:56

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

系统是分散的,很容易出现用户泄漏许可证文件的情况,但在检查更新时,您可以向web api发送机器标识符,如果您检测到许多共享相同许可证guid的不同机器,则可以将许可证标记为不活动。

将RSA密钥的公钥部分存储为base64,这样就很难用十六进制编辑器来查找和替换。此外,您可能需要混淆二进制文件。

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

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

您还可以给出随机的产品密钥,这些密钥由api转换成一个签名的许可证文件。这些密钥具有有限的激活(存储在服务器端),并绑定到机器标识符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53693083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档