简单的帐户控制系统

时间:2017-08-29 07:57:16

标签: qt network-programming qt5 account qtcpsocket

我的程序是TCP套接字服务器,应该通过命令应答系统在网络上进行管理。命令(请求)-answer系统不是问题:客户端发送数据包,服务器接收数据包并生成响应。数据包只是一个字节序列 问题是我必须创建一个简单的帐户系统。我的服务器应该存储和管理两种帐户类型:“管理员”和“简单用户”。因此我应该拥有这样的东西:注册,身份验证和密码存储系统。如何在Qt5上完成这项工作?例如,我只是可以通过网络发送用户名和密码(或密码哈希值),但是如何以正常方式在服务器上初始创建管理员帐户?我没有严格的安全要求,但我想创建一个有意义的正常系统。

2 个答案:

答案 0 :(得分:1)

最简单的方法:管理员凭据应该通过服务器端的某个配置文件预定义。作为额外保护,您可以强制用户在首次登录时更改密码。另一种方式:许多CMS为首次登录用户提供完全访问+安装步骤。

答案 1 :(得分:-1)

使用QSslSocket获取安全的通信层(http://doc.qt.io/qt-5/qsslsocket.html),因为您将在此管理链接之上交换密码。

这里有一个代码客户端部分的例子,Qt5:http://doc.qt.io/qt-5/qtnetwork-securesocketclient-example.html

在服务器端,接受专用于您的服务的预定义未使用端口上的套接字。

现在,您可以简单地决定使用随机密码进行登录,该密码将对应于管理员帐户,并创建一个程序,以便在基于QSslSocket的安全通道上发送此密码。服务器必须在接受远程管理之前检查密码。

因此,正如您所看到的,必须在使用服务之前创建管理员。您可以使用基于某些加密方式(OpenPGP,S / MIME等)的私人邮件交换来向管理员提供其密码。