大家平时难免有个需求:把文件上传到云服务器,而常用的方式是 FTP
但 Qt6 已经移除 FTP 支持了,好在 Qt6.4 加入了 QHttpServer
于是我用 QHttpServer 实现了简易的 FTP 功能,需要的代码量并不多。
其实我很早就想弃用 FTP,主要是不安全:
在不受信任的设备上,对方只要监听网络请求,就可以轻松看到 FTP 的账号密码,而且账密长期相对固定。
自己设计 FTP 方案的时候,身份认证的方式就可以自定义,我是这么做的:
对上传文件做一个类似MD5的运算,作为密码,云端验证密码后才会保存文件。
也就是说,不存在明文的账号密码,而且密码也会因为文件数据的不一样而不同,安全性大大提高了。
毕竟对方要破译加密算法才能成功上传文件,这个难度就显然大大提高。