【问题标题】:Are there advantages for using SpongyCastle over BouncyCastle, if targeting Android 3.0 and later?如果针对 Android 3.0 及更高版本,使用 SpongyCastle 是否有优于 BouncyCastle 的优势?
【发布时间】:2017-11-16 23:22:12
【问题描述】:

如果我对情况的理解正确,SpongyCastle 是对 BouncyCastle 的重命名,它的创建是为了让人们能够在 Android 上包含新版本的 BouncyCastle,因为仅包含最新的 BouncyCastle jar 会导致与旧的和剥离的冲突Android 自带的 BouncyCastle 的低版本。

但是,显然自 3.0 版(2011 年 - 6 年前!)以来,Android BouncyCastle 包已重命名为 com.android.org.bouncycastle,因此现在如果您包含常规的 org.bouncycastle,这将不再与之前的打包剥离了 BouncyCastle,您可以通过这种方式使用最新版本。

让我感到困惑的是,SpongyCastle 项目似乎仍然非常活跃,每当我搜索“Android 上的 BouncyCastle”或任何相关内容时,我都会从过去几年中得到很多建议使用 SpongyCastle 的结果,引用将阶级冲突问题作为推理,即使它们(显然)早在 2011 年就已经解决了。我看到的另一个对我来说更有意义的论点是 SpongyCastle 更向后兼容,因为你不会得到运行早于 3.0 的 Android 版本的设备上的任何问题。

所以我的问题是,如果您的目标不是早于 3.0 的 Android 版本,使用 SpongyCastle 而不是 BouncyCastle 还有什么好处吗?

【问题讨论】:

  • 我也很好奇这个

标签: java android cryptography bouncycastle spongycastle


【解决方案1】:

这是海绵城堡wrote 的作者对此的看法:

为什么海绵城堡不会过时?

  • 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 功能,但设备制造商捆绑了旧版本的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2011-08-01
    • 2011-03-10
    相关资源
    最近更新 更多