我想问的是,是否有人知道用于软件保护的硬件USB-dongle,它为跨平台Java部署提供了非常完整的开箱即用API支持。
它的SDK应该提供一个jar(每个操作系统只有一个,而不是一个不同的库),可以作为库添加到自己的项目中。
- jar应该包含各种操作系统和比特的所有本地内容
- 从应用程序的角度来看,应该继续编写(api调用)一次并在任何地方运行,而不必关心最终用户将在哪里运行软件
- 所提供的jar本身应该处理加载适当的本地库
这样的东西存在吗
根据我迄今为止的尝试,您有不同的API和win32、linux32、win64、linux64等的编译库(或者您甚至必须在目标机器上自己编译),但是嘿,我们在这里做Java,我们不知道(也不在乎)程序将在哪里运行!
我们不能指望最终用户是一名软件工程师,调整(并破坏!)其linux服务器、链接库、破坏gcc、丢弃文件系统等
一般来说,Java支持(以透明的跨平台方式)对我迄今为止评估的加密狗SDK(例如KeyLok和SecurTech的UniKey)来说相当糟糕。我甚至购买了(没有免费的评估套件)SecureMetric SDK&加密狗(根据营销材料:\,它们应该是"soooo"集成的,而且是有史以来最糟糕的:SecureDongle X没有64位支持,SecureDonggle SD根本不是跨平台的。
那么,有没有人经历过这一切,并找到了用于跨平台部署的终极Java安全usb加密狗
注:软件体积小,价值高;应用程序是离线的(没有互联网接入的内联网),因此没有在线激活替代方案等。
--编辑
尝试了HASP加密狗(过去被称为"Aladdin"),并将其添加到no-no列表中:在这里,也没有开箱即用(开箱即用)的支持:例如,最终linux用户必须手动将.so库(适当位的特定文件)放在文件系统的正确位置,并导出env。变量。
完全免责声明:我为一家生产软件保护加密狗(CodeMeter)的公司工作。但我相信我们可能有一个满足您要求的解决方案:我们有一个适用于所有平台(Win、Mac、Linux等32位和64位)的单一API。每个最终用户机器只需要一个运行时(Windows上的服务;Linux上的守护进程)。我们使用本地Java API,它使用TCP/IP来调用我们的运行时,因此不需要特殊的设备驱动程序。您可以在交付加密狗(预编程)之前进行激活,也可以在没有互联网接入的部署中通过文件交换(NikeNet)进行激活,或者您可以移除加密狗,将其带到具有互联网连接的机器上,并在那里更新许可证。
在比API更高的级别上,我们有AxProtector,这是一种自动保护/加密工具,您可以使用它来测试我们的保护系统,而无需更改源代码。这将允许您在所有感兴趣的平台上测试实现——您不需要为不同的平台创建多个版本。
我们有一家财富100强公司使用它来保护在非英特尔Solaris上运行的Java应用程序,所以我们知道它作为一个跨平台解决方案已经过压力测试。
我们有一个免费的全功能评估系统,我们可以尽快为您提供。如果你按照我个人资料中的电子邮件地址给我发电子邮件,我们可以向你发送SDK,并帮助你快速确定这是否能解决你的问题。
您可以使用Dinkey Pro加密狗来实现这一点。虽然它们为每个操作系统和体系结构使用单独的本地库,但您只需要调用它们的Java API,它就可以处理任何特定于平台的位。用.class(API)将库封装在一个JAR文件中,您就得到了一个整洁的解决方案。加密狗本身是无人驾驶的。
我只能建议避免使用SecurTech UniKey系统。在评估过程中,产品满足了我们需要的所有要求。我们开始集成此解决方案,并发现了一个又一个问题。以下是SDK 6.2.7:中主要问题的简短列表
- 保存和加载同一解决方案时,信封设置会随机更改(视频)
- 使用信封包装的DLL文件不会加载
- 用于基于脚本的构建的信封的控制台版本不起作用。它无法包装可使用基于GUI的信封程序版本包装的exe/dll
支持是被动的,但并不能真正解决问题。
毕竟,我们浪费了将近一个月的时间来整合这个保护系统,但由于大量的质量问题,现在不得不更换。