我正在为应用程序开发一些外部模块。
这些模块是 BPL 文件,如果存在于应用程序文件夹中,应用程序将加载它们并使用其中可用的任何内容。
如何防止我的客户共享这些模块?
我需要他们被授权使用模块(一个模块一个模块)。
要获得某种许可证,注册模块,最好的方法是什么?
谢谢
我假设您的客户都有某种唯一的 ID(序列号、许可证号)。当您合法地将 BPL 提供给您的一个客户时,请给他两个文件:BPL 本身 + 一个包含 BPL 名称哈希的文件 + 用户的许可证号。如果无法验证哈希,请不要加载 BPL。确保您不对 BPL 本身进行哈希处理,您最终会遇到无法使用您的 BPL 的客户,因为他们感染了病毒!
让您的 BPL 导出一个看起来像这样的函数function OkForClient(ClientID:string):Boolean
。这允许您将验证从 BPL 更改为 BPL。
花一周时间学习非对称加密,用攻击者无法复制的东西替换第一个选项中的哈希文件,即使他们知道算法。