所以我制作了这个非常依赖安全和加密的基本聊天应用程序。在使所有内容协同工作时,我遇到了一些问题。
我已经设法在客户端和服务器之间建立了连接,但我也希望他们共享一个公共密码,他们将使用该密码来解密整个聊天会话,因此只有这两个会查看它。此外,密码永远不会通过网络传输以增加安全性。这就是我的问题开始的地方。
一旦我的客户端和服务器连接,服务器就会发送一个用户指定的质询,该质询基本上是一个字符串,客户端需要解密并发送回该字符串,然后服务器会查看它是否匹配,如果匹配,通信将继续,很像 WiFi 中的 WPA 加密。
我的加密设置是 AES,我有一个字符串和一个密钥,然后将整个内容加密并解码为 Base64,然后发送。解密时,该过程显然是相反的。服务器设法正常发送所有内容,但客户端在解密时返回 null,即使它正确接收到加密字符串。我基本上有一个类充当客户端或服务器,具体取决于用户的选择。
下面是一些代码/堆栈跟踪:服务器输出:KCcOYuXTUD6SaXJQ4qIn7Q== helloworld
客户端输出:KCcOYuXTUD6SaXJQ4qIn7Q== null
加密/解密方法: http: //pastebin.com/TtErYyz6
套接字写入/读取方法: http: //pastebin.com/73QcQxva
客户端的堆栈跟踪:http://pastebin.com/NdexZdyV注意 :当逐行调试时,它只是像 27 一样停止在套接字 pastebin 链接中
希望我已经包含了足够的细节来获得解决方案:P 感谢您的帮助,我一直在为这个项目努力工作,即使某些功能是不必要的,我仍然会尝试在适用的情况下实现它们以尽可能多地学习当我下个月开始我的编程学位时
完整代码: http: //pastebin.com/xkunfX37