创建包含数据的许可证密钥

时间:2013-03-16 19:23:12

标签: c# string hash cryptography licensing

我有兴趣为我的应用程序创建许可证密钥,并且已经考虑过系统如何进行激活以最小化复制安全性而不必麻烦我的客户。另外,我很清楚,没有绝对的方法来防止盗版,我不介意事后。

我对通用密钥生成更感兴趣。我能想到的第一种方法是使用SHA,MD5或任何其他流行的单向算法创建哈希。这些哈希(大部分)短,易于为客户输入。但与此同时,我想在生成的激活密钥中包含其他数据,我希望在客户端的应用程序内解密。但是大多数使用密钥加密数据的算法导致随机长度短语,这些短语可以很容易地> 300个字符长。

是否有一种算法可以将字符串加密为具有预定义长度或模式的加密文本,之后可以解密?

2 个答案:

答案 0 :(得分:1)

由于您希望许可证数据包含某些信息(可能是客户名称,到期日期等),因此您可以考虑生成包含加密数据的文本文件并将其发送给客户。然后,他们可以从应用程序中选择该文本文件,而不是输入许可证密钥。

如果存在在线激活过程,您只需生成随机产品密钥,将其发送到客户端并针对中央激活数据库进行检查,并在激活过程中将所有许可证数据传输到客户端。

答案 1 :(得分:0)

没有。数据加密不能短于数据字符串的长度。

因此,如果您想要包含比键码更多的信息,那么您需要使用加密的许可证文件(.lic),他们可以将其内容导入或复制并粘贴到表单中。