我终于弄清楚了如何用Java执行Diffie-Hellman密钥交换,现在的问题是我必须使用共享密钥对txt文件进行加密。我什至不知道该怎么做。 txt文件只是换行上每个整数1 2 3 4 5。有我不知道的简单代码行可以执行此功能吗?我拥有的共享密钥是18.0。
答案 0 :(得分:-1)
获得Java中的客户端/服务器之间共享的公共密钥后,对txt文件进行加密
让我们假设您正在从事一个学习或玩具项目,否则(重新)发明您自己的安全通信毫无意义。如果要认真考虑安全性,只需使用TLS / SSL(可选配2路客户端auth ssl)进行在线内容传输。
我真的希望出于自己的缘故,您正在学习或玩这个游戏。
使用共享密钥加密txt文件。我什至不知道该怎么做。
对于静态加密(对文件本身进行加密)-从问题中假设发送方和接收方具有自己的密钥对。
我建议创建一个随机数据加密密钥来加密内容。然后,您可以简单地使用接收者的公钥来加密数据加密密钥,并使用发送者的私钥对内容的哈希进行签名。永远不要使用普通的(教科书)RSA,使用适当的填充。
我为自己做了一些笔记about encryption,您可以从中得到一些启发。
我拥有的共享密钥是18.0。
显然,您使用的公共密钥时间不够长或随机性不够。对称密码需要固定长度的密钥(例如AES需要128、192或256位密钥)。您可以使用任何密钥派生函数或哈希来生成更长的密钥。如果要使用双向通信,则每个方向都需要一个单独的键。
不管-短密钥种子(小共享密钥,短公共密钥)对于暴力破解都是可行的。在处理加密货币时,有很多方法可以让自己大开眼界,因此请尽可能使用一些行业标准(例如TLS)。