如果我正确理解情况,SpongyCastle是BouncyCastle的重命名,它的创建是为了让人们能够在Android上包含新版本的BouncyCCastle,因为仅仅包含最新的BouncyCastle jar就会与Android附带的旧版和精简版BouncyCcastle发生冲突。
然而,很明显,自3.0版本(2011年-6年前!)以来,Android BouncyCastle包被重命名为com.android.org.bouncycastle
,因此现在如果您包含常规的org.bouncycastle
,这将不再与预打包的精简版BouncyCCastle冲突,您可以这样使用最新版本。
让我困惑的是,SpongyCastle项目似乎仍然很活跃,每当我搜索"Android上的BouncyCastle"或任何相关内容时,我都会从过去几年中得到很多结果,建议使用SpongyCCastle,并引用阶级冲突问题作为理由,尽管这些问题(显然)早在2011年就已经解决了。我看到的另一个对我来说更有意义的论点是,SpongyCastle更向后兼容,因为在运行3.0之前版本的Android设备上不会出现任何问题。
所以我的问题是,如果你的目标不是3.0之前的Android版本,那么使用SpongyCastle而不是BouncyCastle还有什么好处吗?
以下是Spongy Castle的作者对此所写的内容:
为什么海绵城堡不会过时
- Android 3.0之前的设备仍在积极使用中。贫穷国家有更高的使用领域,这些人仍然需要安全的密码。Signal(据我所知,不是SC用户)目前仍然支持Android 2.3及更高版本
- 即使在Android 3.0之后的设备上,设备制造商也会漫不经心地捆绑库,Bouncy Castle可能仍然捆绑在一些不知名的设备上
- 虽然与安卓捆绑的Bouncy Castle版本更改了包名,但它仍然有"BC";作为提供者名称,在将您自己的Bouncy Castle副本添加到应用程序并选择";BC";作为您的提供商
但他接着注意到,《海绵城堡》的发行往往落后于《弹跳城堡》的发布。。。原因完全可以理解。
简而言之,对于Android设备来说,使用Spongy Castle的唯一可能好处似乎是处理您的应用程序需要最近的Bouncy Castle功能的情况,但设备制造商已经捆绑了旧版本。