如何手动加密套接字连接的流量?

时间:2013-12-19 21:53:45

标签: java networking aes nio encryption

我想手动加密来自套接字的字节,换句话说,我想在客户端和服务器上进行加密和解密。以安全的方式交换pub / priv密钥的过程是什么?我非常想在插槽级别上执行HTTPS在浏览器级别所做的事情,但我想自己做,而不是使用已经为我做的那个SSLSocket。我想了解并学习在高级SSLSocket课程中将其视为理所当然。

谢谢!


哇!从这里的评论来看,最好是做一个SSH隧道而忘记它,对吗?

1 个答案:

答案 0 :(得分:2)

圣洁的!您想实施Diffie-Hellman Key Exchange吗?这需要一些时间。基本上,您将使用同步密钥加密,而不是公钥 - 私钥。使用数学,您可以通过不安全的连接交换密钥。然后,一旦交换了密钥,就可以使用它来加密数据。

如果您想使用public key cryptography,那么您实际上并不交换密钥。服务器和客户端都有公钥和私钥(总共4个密钥)。您可以自由地广播公钥,但私钥保持私密。这也需要一些时间。

您要做的事情大约需要一周,最少2-3个类文件。它可能会有错误而不是加密安全,仅供参考。 Cryptography is hard

另见Determining a Private Key (Diffie-Hellman)