感谢 Android 提供了自己的过时版本的 BouncyCastle 加密库,我的处境很糟糕。我已经建立了一个库,它将 REST 与我们自己的 Web 服务进行通信,其中数据由客户端动态加密和解密。客户端可以是 Android 上的移动应用程序,也可以是运行 Oracle Java 的桌面/服务器计算机。
对于 Android,我需要 SpongyCastle,而对于桌面/服务器,我需要 BouncyCastle,因为 SpongyCastle JAR 没有签名,Oracle 运行时不允许那些加密的东西。
问题是,无论使用什么库,代码都是完全一样的。由于包名称,只有导入不同。在 C 中,我会使用条件编译来包含特定于平台的标头,我知道在 Java 中没有那么多。尽管如此,有没有一种方法可以让我实现类似的东西,从几乎相同的来源创建两个构建?我真的很讨厌有两个完全相同但只有一些不同的导入的 .java 文件。这是维护的噩梦。