在客户端-服务器环境中使用 AES 加密

Using AES encryption in a client-server environment

我目前正在开发客户端-服务器应用程序。我有一些数据要在客户端加密并在服务器端解密。

我已经弄清楚 encryption/decryption 部分并开始工作了。我的问题是钥匙和盐。它们都是在运行时随机生成的,然后再通过网络发送到服务器。

我的问题是:

我目前的解决方案是将密钥和盐与加密数据一起发送。

Client server AES encryption

post 上的人建议联系服务器,让他知道我们要发送安全消息。然后他生成一个密钥并将其发回给您。对于一个你希望一切都尽可能打包的游戏网络来说,这不是有点 "too much" 吗?

平时都在做什么?

谢谢。

看来您不小心绊倒了并推出了自己的加密货币。呃哦。不过不用担心,振作起来,删除所有加密代码,然后使用 SSLStream.

为什么?

  1. TLS 是人们多年工作、研究和分析的结果,这些人在加密方面比你我加起来要好得多,乘以十亿倍.

  2. 与编写您自己的自定义解决方案相比,它会更快、更轻松。如果您不使用 AES 的身份验证模式,则需要实施 Diffie-Hellman、RSA/DSA 签名、AES、一个或两个 HMAC 的组合,最重要的是,您需要注意填充预言机、前向保密和一大堆其他东西。

开个玩笑,你永远不应该推出自己的加密货币。依靠久经考验的技术。