使用Qt保护文件上传

时间:2011-02-04 18:24:07

标签: c++ ssl qt4 sftp ftps

我正在创建一个用于备份用户媒体文件的实用程序。媒体没有被共享等等,它只是一个备份工具。

我正在尝试考虑保护用户免受ISP指控他们使用某种安全连接下载非法媒体文件的最佳方法。

该实用程序是使用Qt lib以C ++编写的,到目前为止,我只能找到QtSslSocket组件以进行安全连接。该域名在未来几年内已拥有有效的SSL证书。

任何人都可以建议从服务器端和客户端实现此方法的最佳方法。即服务器需要具备什么特性,备份实用程序是否需要从客户端实施以确保安全交易?

是否有可用的已知,稳定的sftp或ftps服务器等?

据我所知,Qt不支持安全的FTP传输。 不知道还有什么其他信息。将问题更清楚是有用的,但任何建议或帮助指出我正确的方向将是最受欢迎的。

编辑我也是Java主管,所以Java解决方案也可以正常运行......

4 个答案:

答案 0 :(得分:3)

正如马丁所写,你可以包装客户。但如果您不想这样做,可以使用libssh

答案 1 :(得分:3)

我在几天内搜索了某种解决方案,然后忘记了这个问题。然后今天我偶然发现了Qt-Creator源Utils::ssh中的这个小宝石,包括对SFTP的支持,普通的SSH和各种各样的好东西。

来自Qt-Creator的东西可能很痛苦,但是经历了这个过程,这相当于抓住了Botan(QT-Creator中的其他一个库)+ Utils。

当下雨,它倒了,我在一小时内找到了解决这个问题的两个方法 - http://nullget.sourceforge.net/(需要中文翻译),但是从他们的总结中可以看出:

  

NullGet是用Qt编写的,运行时   多个平台,GUI界面   多线程多协议   HTTP下载软件。使用NullGet   可以轻松下载各种   网络协议数据流,速度更快   下载速度,支持HTTP,   目前支持的协议是:   HTTP,HTTPS,FTP,MMS,RTSP。它   可以运行在目前最流行的   操作系统包括Windows,   Linux,FreeBSD等。

答案 2 :(得分:2)

最简单的方法就是用Qt前端包裹commandline sftp client

在服务器上任何ftp服务器都应该开箱即用sftp。

答案 3 :(得分:0)

正如Synthesizerpatel所说,Qt Creator实现了SFTP。所以我已经隔离了包含SSH和SFTP的库,我在Github中创建了一个名为QSsh的新项目(https://github.com/lvklabs/QSsh)。该项目的目的是为任何Qt应用程序提供SSH和SFTP支持。

我已经编写了一个关于如何使用examples/SecureUploader/

中的SFTP上传文件的示例

我希望它可能会有所帮助