如果我理解正确的话,SpongyCastle 是 BouncyCastle 的重命名,它的创建是为了让人们能够在 Android 上包含新版本的 BouncyCastle,因为仅仅包含最新的 BouncyCastle jar 就会导致与旧的和精简版本的冲突。 Android 附带的 BouncyCastle。
然而,显然从 3.0 版(2011 年 - 6 年前!)开始,Android BouncyCastle 包被重命名为com.android.org.bouncycastle
,所以现在如果你包括常规的org.bouncycastle
,这将不再与预打包的精简版 BouncyCastle 冲突,并且您可以通过这种方式使用最新版本。
让我困惑的是,SpongyCastle 项目似乎仍然非常活跃,每当我搜索“BouncyCastle on Android”或任何相关内容时,我都会得到过去几年的很多结果,这些结果推荐使用 SpongyCastle,并引用了类冲突问题作为推理,即使它们(显然)早在 2011 年就已得到解决。我看到的另一个对我来说更有意义的论点是 SpongyCastle 更向后兼容,因为你不会遇到任何问题运行早于 3.0 版本的 Android 的设备。
所以我的问题是,如果您的目标不是 3.0 之前的 Android 版本,那么使用 SpongyCastle 比 BouncyCastle 是否还有任何优势?
《海绵城堡》的作者是这样说的wrote https://github.com/rtyley/spongycastle/issues/34关于这一点:
为什么海绵城堡不会过时?
- Android 3.0 之前的设备仍在活跃使用。在较贫穷的国家有更多的使用领域,而这些人仍然需要安全的加密技术。 Signal(据我所知,不是 SC 用户)目前仍然支持 Android 2.3 及更高版本。
- 即使在 Android 3.0 之后的设备上,设备制造商也不会不小心捆绑库,Bouncy Castle 可能仍然会捆绑在一些不起眼的设备上。
- 尽管与 Android 捆绑的 Bouncy Castle 版本更改了程序包名称,但它仍然以“BC”作为提供程序名称,这使得在将您自己的 Bouncy Castle 副本添加到应用程序并选择“BC”时,实现的选择存在一些模糊性。 “作为您的提供者。
但他接着指出,Spongy Castle 的发布经常落后于 Bouncy Castle 的发布……原因是完全可以理解的。
简而言之,对于 Android 设备,使用 Spongy Castle 的唯一可能的好处似乎是处理应用程序需要最新 Bouncy Castle 功能但设备制造商捆绑了旧版本的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)