c# - 桌面应用程序和服务器之间的加密 - C# 到 PHP

标签 c# php encryption-symmetric encryption-asymmetric

我有一个用 C# 设计的应用程序。简单来说,应用程序将数据和图像发送到我的网络服务器,该服务器获取所有 $_POST 数据并对其进行处理。我承认我不明白事物的安全端是如何工作的。我会聘请有相关经验的人来做这件事,但我什至不知道在这一点上问他们什么,因为一些公认的技术是什么。

我认为它不像 base64 编码/解码数据那么简单,它需要更高级别的加密。网络服务器将在接下来的几周内获得 HTTPS SSL(OV) 认证,但我的有限理解是,在将数据从用户 PC 传输到我的网络服务器时,我仍然需要某种保护/加密,这样就不会有人在监听数据传输或类似的东西。

简单来说,如果我想保护用户和我的网络服务器之间的数据安全,从 C# 到 PHP 的一些最常见或可接受的方法是什么?

数据直接从用户 PC 上的应用程序传输到我的服务器,我控制着两者的源代码,但我自己而不是开发人员因此我缺乏关于这个问题的技术知识。

我与一位 C# 开发人员讨论了建议的对称/非对称算法,但他不是 PHP 开发人员,因此他不知道 php 是否可以获取该数据并对其进行解密。

最佳答案

您似乎很关心数据从客户端应用程序传输到服务器时的安全性,反之亦然。正如评论中提到的,在这方面 HTTPS 连接就足够了。它会自动为您执行加密/解密。

要使 HTTPS 连接正常工作,您需要购买 SSL 证书(Namecheap 是一个可以购买的网站)并将其安装在您的 Web 服务器上。证书会在用户第一次连接到服务器时自动安装在用户的本地计算机上,并且每个后续连接都会检查证书是否有效。所以基本上,您只需在服务器上安装证书,在必须更新证书之前不必担心。只需确保您的客户端应用尝试连接到 HTTPS 地址而不是 HTTP。

如果您要实现对称/非对称加密,它将有助于在数据传输前后进行加密和解密。如果您在客户端应用程序中加密数据,则必须在收到数据时在服务器端对其进行解密,反之亦然。这将为您提供更强的安全性;但是,根据您应用的性质,HTTPS 连接可能就足够了。

我的个人项目之一是连接到 Ruby Web 服务器的客户端 C# 应用程序,我也编写了该项目。我在我的 Ruby Web 服务器上安装了 SSL 证书,以便数据在传输过程中被加密。就我而言,传输的数据不包含任何用户数据或 PII(个人身份信息),因此如果外部方获得此信息的访问权限,则不会构成安全风险。因此,我觉得在传输前后使用加密是不值得的,也不会给最终用户带来任何好处。同样,这取决于您的应用的性质和用户的期望。

编辑:

作为mine评论中提到,StartSSL提供免费的 SSL 证书。

关于c# - 桌面应用程序和服务器之间的加密 - C# 到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949338/

相关文章:

c# - NHibernate 映射创建重复的外键

c# - HttpWebRequest 支持命名管道吗?

c# - Rijndael 填充或长度无效

PHP 和权限

php - 如何将当前时间戳插入数据库?

security - Kerberos 领域理解

c# - .NET 加密问题

c# - 在没有 ShellExecute 的情况下使用 UAC 提升进程权限

c# - C# 中的 Math.Cos 和 Math.Sin

php - WAMP 2.4 - MYSQL 实例图标保持橙色