java - 将公钥交换为序列化对象

标签 java cryptography public-key public-key-encryption

如何将公钥交换到客户端处。我已经使用私钥使用 RSA 算法加密了文档(文本文件),然后使用序列化将公钥作为 java.security.Key 对象存储在文件中。我想知道序列化公钥对象的完整性是否这是安全的选择或任何其他可用的选择。

最佳答案

公钥通常只是作为一段文本进行交换。然后将其导入 keystore 。确切的方法取决于实现(我一直使用 PGP)。

我不会将 key 公开为 java.security.Key 的序列化形式,因为它不是真正的标准。其简单形式的关键是交换的标准形式。

关于公开 key 作为下载:它是公开的,因此入侵者无法通过下载您的 key 来做任何事情。唯一可能出错的是有人可以伪造您的服务器并托管不同的 key 。然后用该 key 的私钥签名并声称是你。当然,如果您将其邮寄给某人,您可能会遇到同样的问题。但至少你会知道你把它邮寄给了谁。

最安全的方法是将 key 传播到边界外。就像在 U 盘上一样。

根据您的原因,我认为您可以承受风险。

关于java - 将公钥交换为序列化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5935231/

相关文章:

java - 从命令行运行 Java 到 Kotlin 转换器?

java - 如何修复 cucumber Selenium JAVA中的 "The type List is not generic; it cannot be parameterized with arguments <String>"错误

c# - 在 .NET 中使用 OpenSSL 加密和解密文件

jwt - jwt.io 从哪里获取 JWT token 的公钥?

encryption - 如何从私钥生成RSA公钥?

java - 向 Spark 数据集添加列并转换数据

java - 如何正确地将@DefaultProperty 注释添加到使用@NamedArg 的自定义类

cryptography - 在 Tink 中为 KeysetHandle 构建 key

javascript - 创建 C# 256 位 AES 加密,如 cryptoJS

ios - 设置 TrustKit