2010-10-12 91 views
1

我有我从一个客户端程序的cpp运行针对运行Apache服务器的HTTP POST字符串。以下是会得到来自客户端发射POST字符串:加密HTTP POST数据

"POST %s HTTP/1.0\r\n" 
"Host: %s\r\n" 
"Content-type: multipart/form-data\r\n" 
"Content-length: %d\r\n\r\n" 
"Content-Disposition: %s; filename: %s\n" 

这将是很好,如果有人可以帮助我理解我怎么能加密的Content-Disposition:现场坐镇的数据。 另外,我注意到,即使我把东西无关的POST字符串的右边,如:"POST %s HTTPGarbage/1.0\r\n",转让仍然发生,它会如果我了解这种行为也隆重。

感谢,
萨扬

+0

是否使用HTTP或HTTPS?你的问题被标记为两个。 – casablanca 2010-10-12 05:31:01

+0

好吧,我猜测是否有办法在加密数据时使用HTTPS,因此也就是标签。 – Sayan 2010-10-12 05:33:04

+1

事实上,如果你使用HTTPS,所有的数据都会自动加密。 – casablanca 2010-10-12 05:35:29

回答

3

如果使用HTTPS(这基本上是基于SSL的HTTP/TLS),所有的HTTP流量将来自SSL TLS连接建立/瞬间被加密的(前提是你是使用适当的密码套件),在任何HTTP通信之前。只有服务器证书(可能会显示主机名)可见,并且在某些情况下(如果您还使用客户端证书验证),可能还会显示客户端证书。 URL和所有HTTP标题(和内容)将以这种方式使用SSL/TLS进行保护。

如果你不使用浏览器作为客户端,您可以利用现有的SSL/TLS库,比如NSS(Mozilla的)或的OpenSSL。确保正确配置证书信任和主机名称验证。

+0

我忘了说,你可能会感兴趣的类似[libcurl中(http://curl.haxx.se/libcurl/c/https.html)。 – Bruno 2010-10-14 09:57:14

+0

其实我不是使用库过于热衷,主要是因为它们会增加大小(OpenSSL是3.5M左右)的软件......我们只需要每个客户端一个单发文件传输到服务器(该数据也不是超敏感的),不涉及证书握手。我正在考虑编写一个简单的定制加密技术,这个加密技术大多数时候都可以使用。 – Sayan 2010-10-14 19:03:25