我有一个要部署到客户端的 Excel 加载项。目前它是一个.xlam
文件。我知道 Excel 插件可能不是分发软件的最佳方式,但这就是我所拥有的。我的问题是如何保护此加载项不被用于目标客户端以外的其他计算机?
我考虑了以下几点:
- 加载项检查某个不知名的位置是否存在文件。如果存在,请转到步骤 6
- 如果文件不存在,则生成包含一些随机字符的文件。并将其作为注册信息显示给用户。
- 然后用户联系我们获取激活码。
- 我们使用一些加盐哈希算法创建激活码并将其发送回用户。
- 用户将这个激活码输入到提示中。宏对其进行验证,然后将激活码存储在
.xlam
. - 然后,宏检查受保护工作表中的激活代码是否对文件中的代码有效。如果不是,它会提示激活。
- 如果文件和激活匹配,则允许访问加载项中的功能。
我对上述想法的问题如下:
- 文件应该存储在哪里以及不允许当前用户在该位置创建文件的机器呢?
- 用户是否容易发现这些文件的存在?如果文件被复制到另一台计算机,加载项将对其进行验证并正常工作。
- 如果我们升级插件,它将丢失激活码。如果我们使用第二个文件而不是受保护的工作表来存储它,这实际上可以很容易地解决。