1
11
这里的想法是这样的-如果我们首先假设您的应用程序包含验证 整体 许可证密钥,如果有人创建了密钥生成器,那么为下一个版本重新保护许可证过程的唯一真正选择是完全更改密钥生成算法,使密钥生成器不再生成有效密钥。 这有一个显著的缺点——合法用户需要获得使用新密钥算法创建的新许可密钥,才能使用更新的版本。这可能是您的支持噩梦,也可能是您客户的烦恼,可能会导致他们转向竞争对手的产品。 仅通过验证 部分 对于产品的任何一个版本中的密钥,攻击者几乎不可能通过分解二进制文件来确定整个密钥是如何生成的。因此,要在下一版本中锁定非法生成的密钥,您只需开始检查在上一版本中未检查的密钥的不同部分。由于密钥生成机制没有改变,合法用户的密钥仍然可以正常工作,但非法密钥(以及创建它们的密钥族)不再有效。当然,旧的密钥生成器仍然适用于旧版本,但您对此无能为力。 当然,由于您的密钥是有限长度的,在检查整个密钥之前,您只能重复此过程太多次,或者在所有先前版本中的检查中有足够的信息来重建整个密钥生成过程,但也许这将持续足够长的时间,以便您能够合理地期望用户为您的产品的下一个主要版本购买新的许可证,在那里您可以完全更改生成机制并重新开始。 |
zoid_ · 如何将列表中的一个项目更改为另一个列表中的另一个项目? 2 年前 |
YungOne · 如何将RSA私钥转换为pem 2 年前 |
Annie Nguyen · 使用函数对字符串进行加密/解密 2 年前 |
Louis · 在Java中存储令牌/密码的最佳实践 2 年前 |
beginner_geek07 · 为什么我的输出是“无”? 2 年前 |