加密许可证字符串

Posted

技术标签:

【中文标题】加密许可证字符串【英文标题】:Encrypt license string 【发布时间】:2013-08-19 17:30:32 【问题描述】:

在我的程序中,我有一个我购买的 dll,并且在程序中有许可证字符串。

代码在发布前被混淆,但字符串没有。所以每个人都可以反编译代码并读出字符串。我需要加密/解密字符串。问题不在于如何加密/解密字符串!它现在可以创造性地以一种没有人可以通过混淆代码恢复它的方式来完成......也许通过传递 3 个混淆函数等......任何建议都值得赞赏!

【问题讨论】:

这里没有真正的“最佳实践”,因为您要问的是默默无闻的安全性。它可能适用于不太坚定的“攻击者”,但基本上只是让它变得足够困难而不值得付出努力。 谢谢!所以只有足够的混淆函数来隐藏它? 这个问题似乎是题外话,因为它是关于安全设计而不是实现问题(您甚至注意到您不需要任何编码帮助)。我建议你试试security.stackexchange.com,这可能更合适。 所以只有足够的混淆函数来隐藏它? IMO 这没有任何意义 - 每个知道如何反编译程序集的人都会有足够的能力获得原始字符串。跨度> 【参考方案1】:

我认为,您的问题不是隐藏字符串,因为没有人可以读取它。 我想,你想保留这个字符串不被修改,是吗?

如果是这样,您可以保持字符串原样,但在其他地方保留该字符串的校验和, 并在程序运行时在代码深处验证校验和。 如果校验和错误,则退出或执行其他操作。

例如关于“else” - 您可以在每个用户输入时验证总和, 如果检查失败,则分配 10 兆字节的内存。结果,“被黑”了 程序会有内存泄漏,而且难以理解, 泄漏从何而来。

【讨论】:

以上是关于加密许可证字符串的主要内容,如果未能解决你的问题,请参考以下文章

为啥在使用私钥加密时不能使用 RSA OAEP 填充?

在 PHP 中加密和解密许可证密钥

带有许可证 URL 和令牌的 Playready 加密测试 SMOOTH 内容

加密许可错误

如何使用公共加密来管理 Android 应用程序的许可?

带有许可证密钥的 Ioncube(不是许可证文件)