java - 获取Java客户端/服务器之间共享的公钥后如何加密txt文件
问题描述
我终于弄清楚了如何在 Java 中执行 Diffie-Hellman 密钥交换,现在的问题是我必须使用共享密钥加密一个 txt 文件。我什至不知道如何开始这样做。txt 文件只是简单的整数 1 2 3 4 5 每个都在一个新行上。是否有一行我不知道的简单代码可以执行此功能?我拥有的共享密钥是 18.0。
解决方案
获取在 Java 中的客户端/服务器之间共享的公钥后加密 txt 文件
假设您正在从事学习或玩具项目,否则(重新)发明您自己的安全通信毫无意义。如果您想认真对待安全性,只需使用 TLS/SSL(可选择使用 2-way client auth ssl)进行在线内容传输。
我真的希望为了你自己,你只是在学习或玩这个。
使用共享密钥加密 txt 文件。我什至不知道如何开始这样做。
对于静态加密(加密文件本身) - 假设发送方和接收方拥有自己的密钥对。
我建议创建一个随机数据加密密钥来加密内容。然后,您可以简单地使用接收者的公钥来加密数据加密密钥,并使用发送者的私钥对内容的哈希进行签名。永远不要使用普通(教科书)RSA,使用propper padding。
我为自己做了一些关于加密的笔记,你可以从中得到一些启发。
我拥有的共享密钥是 18.0。
显然您使用的公钥不够长或不够随机。对称密码需要固定长度的密钥(例如,AES 需要 128、192 或 256 位密钥)。您可以使用任何密钥派生函数或哈希生成更长的密钥。如果要使用双向通信,则每个方向都需要一个单独的键。
无论如何 - 短密钥种子(小共享密钥,短公钥)对于暴力破解是可行的。在处理加密货币时,有很多方法可以让你在自己的腿上开枪,所以尽可能使用一些工业标准(例如 TLS)。
推荐阅读
- python - 如何获取 Slack API 的用户令牌
- javascript - 如何在javascript中延迟以前绑定的事件?
- mysql - 访问函数外的类
- macos - macOS - 将目录中找到的所有特定文件名复制到另一个目录
- php - 带递归的 PDO 查询
- django - 清理表单和访问 self.instance.user 时的 Django RelatedObjectDoesNotExist
- html - html小标签在h1标签内不起作用
- rest - 如何更改 Microsoft.OData.Client.DataServiceContext 中实体的状态?
- reactjs - Laravel 护照仅适用于初始加载
- php - 在 php 中进行实时搜索,mysqli_stmt_close 出现错误