我目前正在开发客户端-服务器应用程序。我有一些数据想要在客户端加密并在服务器端解密。
我已经弄清楚了加密/解密部分并正在工作。我的问题是 key 和盐。它们都是在运行时随机生成的,然后通过网络发送到服务器。
我的问题是:
- 如果 key 和盐是随机的,如何让服务器解密数据?
我当前的解决方案是发送 key 和带有加密数据的盐。
- 但这是否会抵消我保护数据安全的努力?
- 我应该“隐藏”数据中的 key 和盐吗? (附加在末尾/开头)
该帖子上的人建议联系服务器,让他知道我们想要发送安全消息。然后他生成一个 key 并将其发送回给您。对于您希望所有内容都尽可能齐全的游戏网络来说,这不是有点“太多”了吗?
通常会做什么?
谢谢。
最佳答案
看起来您不小心绊倒并滚动了自己的加密货币。呃哦。不过不用担心,只要振作起来,删除所有加密代码,然后使用 SSLStream .
为什么?
TLS 是人们多年工作、研究和分析的结果,这些人在加密方面的能力比你我加起来的水平高出十亿倍。
里>这比编写自己的自定义解决方案更快、更轻松。如果您不使用 AES 的身份验证模式,则需要实现 Diffie-Hellman、RSA/DSA 签名、AES、一个或两个 HMAC 的组合,最重要的是,您需要注意填充预言机、前向保密和一大堆其他东西。
抛开笑话不谈,你永远不应该推出自己的加密货币。依靠经过考验的技术。
关于c# - 在客户端-服务器环境中使用 AES 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40252289/