从硬件生成序列号并隐藏

时间:2015-05-07 08:46:20

标签: c# security

我正在尝试找出执行以下操作的最佳方法:我想基于唯一的硬件编号(MAC地址/ MB序列/等等)生成序列号(在程序中使用) 。这是简单的部分。我还需要“隐藏”其中的一些信息,我应该能够在运行时检索这些信息,以便仅启用我的程序的特定功能。所以,例如:

MAC地址。是12:23:34:45:56:78 - >我把它放入我的串行发生器 - >我得像ABCD-DEFG-HIJK - >现在我必须隐藏一些信息。是否有最佳实践来实现这一目标?

考虑到我不打算设置许可服务器来管理每个串行密钥与程序的启用功能之间的关联,有更好的方法吗?毕竟,如果我在序列号中隐藏了一些可检索的信息,那么彻底的破解者可能总是能够理解如何完成这些信息,因此编辑这些信息以便为他/她的许可计划启用禁用功能。

编辑: 我的想法;这样做(涉及非对称加密):串行生成器程序采用一些唯一的硬件编号然后它只是附加我应该在运行时检索的信息。此时,它使用我的私钥加密生成的字符串。结果字符串将是我将给予客户的字符串。此时,当实际程序在启动时读取该字符串时,它会使用我的公钥解密它,该公钥将与程序捆绑在一起,检查字符串的第一部分是否与pc的唯一硬件编号匹配,然后,解析附加信息,决定应启用哪些功能。这可以解决吗?

0 个答案:

没有答案