gpt4 book ai didi

android - Android 5 上的电子商务

转载 作者:行者123 更新时间:2023-11-29 22:50:03 24 4
gpt4 key购买 nike

我在这篇文章中读到:Generate elliptic curve KeyPair via KeyStore on API Level <23有可能在 Android 5 上使用椭圆曲线。据此:

Prior to API Level 23, EC keys can be generated using KeyPairGenerator of algorithm "RSA" initialized KeyPairGeneratorSpec whose key type is set to "EC" using setKeyType(String). EC curve name cannot be specified using this method -- a NIST P-curve is automatically chosen based on the requested key size.

我可以使用RSA,然后将 key 类型设置为EC。这两种方法之间有什么区别吗?当我将 RSA 与 EC 作为 key 类型和 EC 一起使用时,最终会相同吗?

最佳答案

EC key 对与 RSA 完全不兼容。

这些特定曲线只有一种类型的 EC key (尽管编码时同一点有不同的表示)。 ECDH( key 协议(protocol))/ECIES 和 ECDSA 的也完全相同。

所以 如果"RSA" key 对生成器生成了一个 EC key ,您可以非常确定它在规范方面与为 生成的 key 完全相同code>“EC”一个。通过执行 EC 签名生成/验证或稍微复杂一些的 key 协议(protocol)来简单地进行测试。


您可以通过创建自己的确定性 SecureRandom 实现来进行测试,并要求 EC 实现使用它。这也是因为 EC key 对生成没有 RSA key 对生成器那么多选择,所以算法实现很可能是相同的。因此,如果您从相同的值开始,那么它很可能会生成相同的 key 对。然后您可以比较公钥值或使用一个公钥来验证来自其他私钥的签名。

如果 Android keystore 无法处理它,底层实现可能会忽略给定的 SecureRandom

不过我这里没有这些 Android 版本。


请注意,可以将给定的生成 EC key 的方法视为 hack。由于 Android 5/API 22 是 5 年前的,您可以问问自己是否仍想支持这些版本。

或者,您可以使用 Bouncy CaSTLe 在软件中完全生成 EC key 对,但 Android key 存储不会参与以确保您的 key 安全。

关于android - Android 5 上的电子商务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58039216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com