java - 两个设备之间的安全 RSA 交换

标签 java security encryption cryptography

假设我有一个 key 部分,由设备 A(在本例中为加密卡)创建, key 部分应存储在设备 B(在本例中为智能卡)上并根据需要返回。我想到用 RSA 的私钥加密 key 部分,并将公钥提供给设备 B。然后设备 B 可以解密它并使用它自己的私钥对其进行加密,存储它并在需要时将其加密发回。

现在我想知道如何交换公钥来解密 key 部分而不失去安全性。因为同时发送 secret 和 key 是愚蠢的,因为它与发送解密的 key 是一样的,不是吗?

最佳答案

正常程序是:

  1. 设备 B 将其公钥发送给设备 A
  2. 设备 A 使用 B 的公钥对 key 进行加密,并将结果发送给 B
  3. 设备 B 使用其私钥解密该 secret 。

唯一棘手的部分是第 1 步,您必须绝对确定公钥确实来自设备 B,但没有必要保密。

关于java - 两个设备之间的安全 RSA 交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42689266/

相关文章:

java - 如何在 fragment Android中获取PackageManager

java - 使用 Swagger codegen playframework 制作基础服务器 jar

java - 如何在GraphDB全文搜索中创建自定义AnalyzerFactory?

vba - 如何禁用 Access 安全通知 "A Potential security concern has been identified"

android - 如何从服务器验证/信任 iOS 或 Android 设备的位置?

database - 保护和加密 Multi-Tenancy 云应用程序共享数据库中的数据

java - 在jframe上显示图像

python - openerp 7 中的字段级访问权限和安全性

Python为什么我在RSA加密中有特殊字符

c# - 应该在编码中使用什么加密以及它如何影响 key 和初始化向量?