-1
|
Mawg says reinstate Monica · 技术社区 · 14 年前 |
1
1
听起来你要找的是数字签名。 创建许可证文件时,使用 私有的 关键。当应用程序加载许可证文件时,它使用 公众的 密钥,它被硬编码到模糊的许可证检查中。 显然,用户只需修补许可证检查代码本身——或者用自己的公钥替换您的公钥,或者只是为了避免使用许可证检查替代工具——但实际上您对此无能为力。 |
2
2
您可以使用类似的许可证 FlexNet Publisher License System . flexnet许可证有两个方面。首先是确定一个站点拥有许可证。这可以基于IP、MAC地址或处理器的内部ID来完成。 一旦您获得了该站点的许可证,该站点的许可证就可以在活动用户的基础上进行(您可以拥有数千个用户,但一次只能有10个用户使用该软件)、座椅许可证(您在该站点有10个用户可以使用该软件,并且只有那些用户可以使用该软件)。如果第十一个人想要它,网站必须将许可证从一个被许可给新用户的人身上移开。或者,购买更多许可证)。而且,您可以拥有一个无限用户的站点许可证。 flexnet许可证可能会被破坏,但通常很强大,可以向您报告违反许可证策略的情况。 当然,要使用flexera软件的许可计划,您必须支付许可费。而且,即使我不知道,flexnet许可方案也可能有某种“开源”的实现。 我从未使用过它,因为我完全相信开源软件的理念。而事实上,没有人愿意为我写的任何东西支付一分钱。 |
3
2
如果你有一个文件只是说“是的,软件可能正在运行”,你当然不能阻止他复制这个文件。 什么你 可以 要做的是用特定于客户系统、客户名称、IP地址或其他内容加密文件。然后,您可以让您的软件检查这个IP地址,或者在所有报告或其他内容上打印客户的姓名。 您可以通过简单的对称加密或使用签名来实现,这两种方法都不能阻止他篡改程序以找到密钥。所以告诉你的老板这是一个障碍,但肯定不是牢不可破的。 |
4
1
简单的RSA加密并不能解决您的问题,一旦代码被清除,任何人都可以得到它。 一个更好的问题是,“我愿意投入多少工作,使我的客户很难获得我的代码?”因为不管语言和方法最终如何运行,当它运行时,它可以被读取。 唯一简单的方法是自己托管它,而不允许您的客户机或其服务器访问您的代码。 |
5
0
可能您要做的是使用XOR加密(用密钥对文件中的每个n字节块执行XOR加密),因为@andrekr说您实际上不可能执行此操作,所以您可能需要用您的私钥对加密的文件进行签名,然后您可以验证加密是由您完成的。 当然,如果您不每次都检查这个,并且不使用不透明的文件格式和编译/删除的代码,那么它就不会有太大的区别。 在一般情况下,如果要向用户显示数据,就不可能停止数据的数字复制-在最坏的情况下,他们只需拍摄屏幕截图(甚至捕捉发送到监视器的信号)。 |
zoid_ · 如何将列表中的一个项目更改为另一个列表中的另一个项目? 2 年前 |
YungOne · 如何将RSA私钥转换为pem 2 年前 |
Annie Nguyen · 使用函数对字符串进行加密/解密 2 年前 |
Louis · 在Java中存储令牌/密码的最佳实践 2 年前 |
beginner_geek07 · 为什么我的输出是“无”? 2 年前 |