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