【发布时间】:2010-10-13 08:44:06
【问题描述】:
我正在用 C 语言实现一个小型应用程序,我想稍后以合理的价格将其作为共享软件出售。它将以 30 天的试用期开始,我已经非常确定如何实施。
不过,我的问题是我不太确定如何实施产品密钥验证。我想到的是客户可以在我的网页上注册(在试用产品一段时间后),支付产品费用,并通过 e 获得 aaaaa-bbbbb-ccccc-ddddd-eeeee 形式的产品密钥-mail(或者可以通过他在我网站上的个人资料获得)。到目前为止没有问题。然后,他/她将密钥放在我的应用程序的相应密钥字段中,boom 应用程序已注册。
据我目前收集到的信息,人们为此推荐 AES 或 RSA。老实说,我在大学的另一个方向(不是密码学),我上过的一门密码学课是不久前的。但是据我的记忆,AES是一种对称加密算法,这意味着我只有一个密钥用于加密和解密,对吧?然后,我怎样才能生成数千个产品密钥并仍然在我的应用程序中验证它们(顺便说一下,这不需要互联网访问......所以不需要与服务器核对)?
所以我想 RSA 会是要走的路吗?但是 RSA 不会产生相当长的密钥(至少比上面要求的 25 个字符长)吗?
在another thread 中,我读到有些产品甚至不会使用加密来生成/验证产品密钥,而是只使用一些检查,例如“添加 2. 和 17. 字符,总数应为 x” .
去这里最快、最简单、最安全的方式是什么? :-) 代码示例将是糖!
问候,
塞巴斯蒂安
PS:哦……请不要告诉我我的密钥在某个时候会被破解,而且会被破解……我知道,这主要是我不想花很多钱的原因这个问题的时间,但同时不要让偶尔的破解者变得太容易。
【问题讨论】:
标签: c encryption licensing key product