2-3. 账号管理子系统设计
网络安全传输系统整体设计:
1.基本传输子系统+OpenSLL加密传输 (客户端 <->服务器端)
2.线性池的优化设计(并行服务器)
3.基于sqlite账号管理子系统 (验证客户端)(1.数据文件置于客户端目录下;2,客户端加入数据验证程序(利用数据文件中查找))
对于数据库系统:
访问数据库应用 -> 管理数据库系统 -> 数据库存储 (自上而下)
数据库中数据以表的形式而存在,当处理大批量数据时,更体现其高效性与安全性!(结构化查询语言SQL,用于访问数据库中的数据)
创建表 | creat table stu name varchar(10),number small(int) 表名 变量-类型 |
向表中插入数据 | insert into stu values('HJH',1) 表名 name-number |
表中查询数据 | select * form stu |
表中删除数据 | delete form stu where 范围 |
-----------------------------------------------------------------------------------------
数据库移植、创建数据文件
解压运行"./configuer --host=arm-linux- --prefix=${PWD}/_install"配置命令 -> 生成Makefile文件-> make、make install -> 将产生的库函数文件全部复制与/rootfs/lib/目录下,并运行产生test_db执行文件;
#test_db sql.db "create table stu (name varchar(10),number small(int) )";创建sql_db数据库文件
#test_db sql.db "insert into stu values ( 'david',1 )"; 向数据可中插入数据
#test_db sql.db "insert into stu values ( 'HJH',1 )";
#test_db sql.db "insert into stu values ( 'CC',1 )";
数据库应用
数据库账号管理子系统,主要用于管理客户端账号,非允许客户禁止登陆服务器。
-> 1.创建数据库文件sql.db(存储可登录的用户信息),存储于客户端目录下;
->2.客户端程序内加入登陆验证程序,查询sql.db信息表中是否匹配,错误即exit(0)立即退出。
main()主函数下:
if(login()!=0)
{
printf("wrong username or password!\n");
exit(0);
}
int login() //登陆验证函数,成功返回0
{
char username[10];
char passwd[10];
sqlite3 *db;
char sql[50];
int success;
//1.通知输入用户名和密码
printf("User name: "); scanf("%s",username);
printf("Password: "); scanf("%s",passwd);
//2.根据用户名,从数据库提取正确的密码
sprintf(sql, "select passwd from tb0 where name='%s';",username);
sqlite3_open("sql.db", &db); /*a.打开数据库*/
sqlite3_exec(db, sql, callback, 0, NULL); /*b.执行sql语言*/
sqlite3_close(db); /*c.关闭数据库*/
//3.比较用户输入的密码和数据库提取出的密码,以决定是否登录成功
success = strcmp(passwd,passwd_d); //成功返回0
return success;
}
----------------------------------------------------------------
网络安全传输系统
1)通过对基础传输子系统的程序,实现客户端上传或下载服务器程序。在此基础上加入OpenSSL加密机制增强网络传输的安全性; 2)应用线性池技术优化服务器,实现多客户端同时访问并行执行任务。 3)同时为了提高对客户端账号的管理,加入数据库账号管理子系统,对欲登录服务器的客户端进行账号验证,非数据库允许账号禁止登陆。 实现网络安全的环境下有序进行文件传输操作。