自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (9)
  • 收藏
  • 关注

原创 Socket编程(C语言实现)—— Nginx支持Socket转发

 搭建Nginx环境:[root@localhost /]# cd /usr/local/src[root@localhost src]# wget http://nginx.org/download/nginx-1.11.10.tar.gz然后解压,解压完,根据文档提示需要使用这个参数--with-stream 来启用功能。[root@localhost src]# ./c...

2018-07-29 14:25:53 1628

原创 Socket编程(C语言实现)——TCP协议(网络间通信AF_INET)的流式(SOCK_STREAM)+报式(SOCK_DGRAM)传输【多线程+循环监听】

Socket编程目前较为流行的网络编程模型是客户机/服务器通信模式客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求。如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1、A2和B2提供服务。Socket概述① 所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”...

2018-07-29 13:54:35 74321 8

原创 Linux查找文件 —— whereis 、 find、 locate、 which

which 查看系统PATH目录下可执行文件的位置 。whereis 查看查找二进制文件、源代码文件和man手册页 。。。whereis比which的搜索范围大了一些locate 配 合数据库查看文件位置。。。这个命令的适用范围就比whereis大多了 find 实际搜寻硬盘查询文件名称。。。find最强大也最慢。locate与find 不同: find 是去硬盘找,locate 只在/...

2018-07-27 23:32:41 1378

原创 html——注释(单行注释 多行注释)

HTML注释:<!--这是单行注释--><!--    这是多行注释    这是多行注释    这是多行注释-->JS/jQuery注释://这是单行注释/*    这是多行注释    这是多行注释    这是多行注释*/css注释:/*这是单行注释*//*    这是多行注释    这是多行注释    这是多行注释...

2018-07-26 21:22:49 166986 4

原创 md5sum算法 —— linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序

md5sum帮助命令:[root@jie openssl]# md5sum --helpUsage: md5sum [OPTION]... [FILE]...Print or check MD5 (128-bit) checksums.With no FILE, or when FILE is -, read standard input. -b, --binary ...

2018-07-26 21:13:32 3078

原创 openssl算法 —— 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

openssl 加密字符串的方法:一、利用openssl命令进行BASE64编码解码(base64 encode/decode):1. BASE64编码命令对字符串‘abc’进行base64编码:# echo abc | openssl base64YWJjCg==  (编码结果)如果对一个文件进行base64编码(文件名t.txt):# openssl base64 -in t...

2018-07-25 21:51:15 1449

原创 openssl md5算法 —— Linux下(字符串加密、文件加密)

理解openssl md5:OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。OpenSSL漏洞不仅影响以https开头的网站,黑客还可利用此漏洞直接对个人电脑发起“心脏出血”(Heartb...

2018-07-25 21:15:56 8834

原创 MD5算法 —— C语言实现(字符串的加密)

网上找到的实现md5函数代码,包括一个头文件md5.h和一个源文件md5.c,用下面的测试代码test.c测试通过,各文件依次如下:.h文件——md5.h#ifndef MD5_H#define MD5_H typedef struct{ unsigned int count[2]; unsigned int state[4]; unsigned char...

2018-07-25 20:19:33 28752 19

转载 命令 —— awk内置变量(NF,NR,FS,FILENAME)

关于awk命令的几个内置变量(NF,NR,FS,FILENAME)1.NF:支持记录域个数,在记录被读之后再设置例1[root@redhat wilsontest]# pwd/tmp/wilsontest[root@redhat wilsontest]# echo $PWD | awk -F / '{print $NF}'wilsontest这里取得的是当前目录的最后一个文...

2018-07-23 23:06:44 4947 2

原创 Linux 命令 —— scp linux之间复制文件和目录

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。语法:scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file][-l limit] [-o ssh_option] [-P port] [-S program][[user@]host1:]file1 [....

2018-07-23 20:27:27 591

原创 debug —— set args调试命令(作为程序运行时的参数)

debug调试 —— set  args 作为程序运行时候的参数set args作为程序运行时参数:源代码: 1 #include <stdio.h> 2 int main(int argc,char **argv) 3 { 4 printf("argv[0] is %s\n",argv[0]); 5 printf("ar...

2018-07-21 22:40:34 9209

原创 debug —— list调试命令

就以函数之间传递值(嵌套函数),的函数来理解debug调试中的,list命令。1、test.c源码 1 #include<stdio.h> 2 int aaa(int *a){ 3 int b = 4; 4 (*a) = b; 5 printf("aaa:a=%d\n",*a);...

2018-07-21 19:52:00 1539

原创 VMware10 —— 安装CentOS7(图解)

若您想在VMware 10下安装 Centos7操作系统可以查看此文档(32位、64位文章内有说明;本文主要以32位安装为主[32位VMware,32位Centos7镜像])基础设置介绍:计算机系统版本:          Windows 7 旗舰版系统类型:                     32位操作系统Linux操作系统:             Centos7操作...

2018-07-21 15:04:36 8555 1

原创 Centos(6、7) —— yum源的配置

Linux系统下yum源的配置(阿里云):1、备份mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/CentOS 6wget -O /etc/yum.repos.d/CentOS-Bas...

2018-07-21 11:53:03 1745

原创 C语言 —— 预定义符号__FILE____LINE___func__(编写调试函数printf , debug)

C的预定义符号:__FILE__ __LINE__ __func__ 测试代码:在文件 line.c 中1 #include <stdio.h>2 int main()3 {4 printf("%s\n",__FILE__);5 printf("%d\n",__LINE__);6 printf("%s\n",__func__...

2018-07-20 21:04:07 5940

原创 sqlite库——c语言实现匹配已知字符串中某个字段(该字段在其他表中),在其他表中获取值并显示

问题描述:1、部分sql语句:select id,name,grouname, poliname;2、表名:user_resource;用户组表名:usergroup_name;3、用户所在的用户组名usergroup_name ;即,需要根据以上条件拼接sql语句:select id,name,grouname,(select poliname from user_group...

2018-07-20 20:53:48 976

原创 函数 —— memset() 将存放字符串的数组清空后再赋予该数组新的字符串

void *memset(void *s, int ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法#include <string.h>#include &lt...

2018-07-19 22:25:08 2372

原创 函数 —— strtok() 例如:按照字符拆分字符串,放入新定义的数组中;按照字符拆分字符串,放入原先的数组中

问题描述:原始数组:char str[80] = "This is - aa bb - cc - dd";新定义的数组:     char newstr[80]=  {0};分割符号:    const char s[2] = "-";1、把原始数组中的字符串str,按照分割符号“-”,拆分后,再重组,放入新定义的数组newstr中:     即:把 str , 按照“-”符号...

2018-07-19 22:14:36 3656

原创 读文件 —— WEB前端读取本地文件内容哪些事(前台解析txt文件)……

强制让浏览器允许JS读写本地文件……的操作!问题描述:让自己的浏览器允许js读写本地文件,尽可能多的兼容各种浏览器。(即本机的js文件读写本机的文件)问题回复——1:您的意思是不需要浏览器与用户交互直接操作用户机上的文件?不符合浏览器的安全标准,属于浏览器的设计缺陷所以浏览器是不可能这样支持的--就是没有发布的页面,要执行js操作本机的文件?这是可以的,但也是需要通过人机交互来提醒用户的。问题回复...

2018-07-11 22:15:56 70978 4

原创 MODE —— 两个人在计算机上玩圈叉游戏|井字游戏(知识点:二维数组)

问题描述:        让两个人在计算机上玩井字游戏(也称圈叉游戏)。        井字游戏就是一个3X3的方格,两个人轮流在方格中输入标记X 或者 O 。谁先使自己的3个标记链接成水平,垂直或对角线。谁就是赢家。 运行结果:代码部分(代码说明):#include <stdio.h>int main(){ int player = 0; //Current player...

2018-07-09 15:43:59 832

原创 MODE —— 计算10个分数的平均值(知识点: 数组 变长数组)

数组是一个数目固定,类型相同的数据项,数组中的数据项称为元素。数组中的元素都是int、long、或者其他类型。问题描述:        使用数组可以存储所有要平均的分数,即存储所有分数,以便重复使用它们。计算10个分数的平均值。运行结果:    代码部分:        #include <stdio.h>int main(void){ int grades[10]; //A...

2018-07-09 10:29:34 937

原创 MODE —— 输入一个数字,求从1加到该数的和(知识点:for循环嵌套while循环)

问题描述:      终端输入一个数字,求从1加到这个数字的和!运行结果:    代码部分:#include <stdio.h>int main(){ unsigned int sum = 1UL;//Stres the sum of integers unsigned int j = 1U;//Inner loop control variable unsigned int...

2018-07-06 14:51:13 1920

原创 MODE —— 输出一个高度和宽度固定的方框(知识点:for循环嵌套for循环)

问题描述:      终端输入,需要的图形的高度和宽度,绘制图形。运行结果:代码部分:#include <stdio.h>int main(){ unsigned int width = 0; unsigned int height = 0; unsigned int i = 0; unsigned int j = 0; const unsigned int MIN_SI...

2018-07-06 14:11:11 465

原创 函数 —— 分析命令行参数 getopt() getopt_long() getopt_long_only()

getopt()函数1、功能:     getopt - parse command options (enhanced)  (解析命令选型(增强))2、表头文件:       #include<unistd.h>3、定义函数:        int getopt(int argc, char * const argv[] ,const char * optstring);4、opts...

2018-07-05 17:29:39 1276 1

原创 Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)

数据库内定义的表,以及每个表的字段:表内字段的截图:

2018-07-04 22:42:06 381

C语言入门经典(第5版)——清华大学出版社(Ivor Horton著 杨浩译)

内容: 第8章:编程的结构; 第9章:函数再探; 第10章:基本输入和输出操作; 第11章:结构化数据; 第12章:处理文件; 第13章:支持功能; 第14章:高级专用主题。

2018-11-02

Linux系统C语言编程连接MySql数据库实现的用户用户组色权限管理系统(图形界面)

内容: 1、mysql——原始 文件: 博客网址:https://blog.csdn.net/weixin_42167759/article/details/80848259 存在的问题: 1、新增用户时候id ,删除后再增加会出错,id有冲突; 2、删除用户时候,若该用户创建过其他用户(不能改此用户名、不能改此用户角色,不能删除此用户); 3、(下一步加入)增加时候,若改用户名存在(给出用户存在的提示信息); 2、db_修改过(用户 角色 权限) 文件: 博客网址:https://blog.csdn.net/weixin_42167759/article/details/80848780 修改的问题: 1、新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错; 2、删除用户时候,若该用户创建过其他用户(不能改此用户名、不能改此用户角色,不能删除此用户); 3、(下一步加入)增加时候,若改用户名存在(给出用户存在的提示信息); 4、修改了用户的表字段信息,新增了认证方式的字段; 5、用户有三种认证方式,当选择口令认证的时候,syn_sn_有输入信息,当选择KEY认证的时候,dyn_pass_sn_字段有输入信息 3、userGroupUser_intfac 文件: 博客的网址:https://blog.csdn.net/weixin_42167759/article/details/80848991 整理的文档: 《Mysql 最后程序的总结—— Linux系统C语言编程连接MySql数据库实现的用户角色权限管理系统》 修改的问题: 1、新增 添加用户组模块; 2、新增 显示用户组模块; 3、修改 新增用户模块 选择 其所属用户组 并把用户id与用户组id 写入用户用户组关系表; 4、新增 修改用户以及删除用户组模块(有用户属于该用户组 用户组名字不允许更改 用户组不允许删除); 5、新增 增加用户、用户组时候,若要增加的用户名已存在(给出用户存在的提示信息); 6、修改了 显示的界面问题; 7、修改部分switch case 输入为字符; 8、修改部分 操作完成后 有两次回车 确认的问题; 遗留的问题: 1、switch case 输入为字符,应该改为case a:bresk; case b:break;…… 否则输入的1与10是一样的执行结果; 字符中只有数字0-9; 2、在remark字段中 scanf()函数是不允许输入空格的。 __________________________________________________________________________________________________ 4、user-role-authoritys-usergroup文件: 数据库的图。

2018-10-31

Linux系统C语言编程连接MySql数据库实现的用户 用户组 用户策略 管理系统(getopt函数方式解析命令行参数)

内容: 1、Linux系统C语言编程连接MySql数据库实现的用户 用户组 用户策略 管理系统(getopt解析命令行参数).c 代码的源文件。 user-usergroup-authoritys.vsd user-usergroup-authoritys.jpg 数据库的图,以及图片。 2、部分操作: 显示操作 -S //-S显示名为xxx用户具体信息(所在组、改组定义了什么策略) 提示必须加-n参数 ./userGroupUser users -S //显示用户表 用户组表 所有信息 ./userGroupUser users -S -n root //显示用户表内 name=root的用户的信息 //可以显示该用户对应用户组内 所在的组 定义的策略信息 新增操作 -A /* 全:./userGroupUser users -A s -n test3 -p test3 -a 2 -groot -rasdc*/ /**添加用户 (-g(+) group ; -r(+) remark)**/ //新增用户的时候必须有-n|-p|-a选项 name password authentication //一次性输入所有选项也是错误的 需要为每个参数赋值 // printf("ADD -- Please enter necessary parameters -n|-p|-a,and assign a value to each parameter!\n"); //-g的参数必须紧跟 否则改用户会默认加入root组; //-r的参数必须紧跟 否则判定为输入为空 //当-g选项没有加参数时候 默认该用户属于root组; //-g后的参数不存在则加入失败,提示该用户组不存在 ./userGroupUser users -A -n ddf -p aa -a 1//添加用户 name=ddf authentication=1 默认加到用户组root //insert into users values(7,'ddf','aa','2018-7-2 16:23:39',1,1,' ','KEY认证需要的文件',''); ./userGroupUser users -A -n dds -a 1 -p sd -rkj -gaa //添加用户 name=dds authentication=1 group=aa //insert into users values(6,'dds','sd','2018-7-2 16:20:33',1,1,' ','KEY认证需要的文件','kj'); //-g后的参数 用户组名不存在不允许加入users usergroups表 /**添加用户组 (-e(+) enable; -o(+) policy; -r(+) remark)**/ /*全: ./userGroupUser usergroups -A -n dd -e1 -oWEB,HTTP -rddWH*/ //新增用户时候有必须参数-n选项 name //只有-n参数时候 策略状态( enable_type_)为0 默认策略( policy_type_)为所有策略资源 //其他参数 -e(+) 策略状态enable; -o(+)策略类型policy; -r(+) 标记内容remark ./userGroupUser usergroups -A //提示 Please enter other parameters when you want to add someone!! ./userGroupUser usergroups -A -n aa //用户组表中添加name=aa policy默认如下 remark默认为空 的用户组信息 //insert into usergroups values(2,'aa','2018-7-2 16:14:19',0,'GET,HEAD,POST,PUT,DELETE,OPTIONS','') ./userGroupUser usergroups -A -n aa -oGET -rasd //向用户组中添加 name=aa policy=GET remark=asd的用户 //insert into usergroups values(2,'aa','2018-7-2 16:14:46',0,'GET','asd'); 修改操作 /**修改用户**/ /*全:./userGroupUser users -E -n test33 -p test33 -a 1 -gaa -rtest3totest33 where name test3 password test3*/ //修改用户操作必须有where name password 字符;且where后个数需为偶数; name password参数需参数值 //判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作 //参数 :-n newname;-p newpassword;-a authentication; -ggroup; -rremark; ./userGroupUser users -E -n test22 where name test2 password test2 //把名为test2密码为test2的用户名改为test22 /**修改用户组**/ /*全:./userGroupUser usergroups -E -n aaa -e1 -oGET,HEAD -raatoaaa where name aa*/ //修改用户组操作必须有where name字符;且where后个数需为偶数; name 参数需参数值 //判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作 //参数 : -n newname;-eenabled ; -opolicy; -rremark; ./userGroupUser usergroups -E -n AA where name aa//把aa用户名改为AA ./userGroupUser usergroups -E -n csa -e1 -oAAA,WEB,HTTP -rAAA where name aaa //修改 用户组name为aaa为 name=csa enable=1 policy=AAA,WEB,HTTP remark=AAA 删除操作 ./userGroupUser users -D // 提示 Please enter other parameters when you want to add someone!! ./userGroupUser users -D -n root -p r //root用户不允许删除 //name或passwd 不正确不允许删除 ./userGroupUser usergroups -D //提示 Please enter other parameters when you want to add someone!! ./userGroupUser usergroups -D -n as//判断是否有用户属于该用户组 若有用户属于该用户组 不允许删除该用户组 //root 用户组不允许删除

2018-10-31

centos 6 安装 mantisbt-1.2.8 -- centos 7 安装 mantisbt-2.12.0.zip

内容: 1、centos 6 安装 mantisbt-1.2.8 ; 2、 centos 7 安装 mantisbt-2.12.0.zip 3、mantisbt-2.12.0.tar.gz包; 4、MySQL-5.5.59-1.el7.x86_64.rpm-bundle.tar包

2018-10-31

Openldap配置TLS加密传输

文档内容: 1、为啥要用TLS? 2、SSL/TLS 加密原理简介; 3、Openldap配置TLS加密传输步骤; 4、ldapclient客户端测试;

2018-10-31

WEB解析本地文件

testfile.txt文件: 本地文件,即要被操作的文件。 jquery.js文件; jquery代码运行需要的js文件. interaction.html文件: 人机交互方式实现,WEB操作本地文件; h5文件操作API,FileReader()方式实现,传入该方法的参数为FileList()对象获取到的值; 【 var selectedFile = document.getElementById("upload").files[0]; ……………… var reader = new FileReader();//这是核心!!读取操作都是由它完成的 】 activeXObject.html文件: JavaScript中的ActiveXObject对象, 此对象为 Microsoft 扩展,仅在 Internet Explorer 中受支持,在 Windows 8.x 应用商店应用中不受支持。 activeXobject_interaction.html文件: 因此解决了浏览器,创建文件队象的差异性,IE使用ActiveOBject,非IE使用XMLHttpRequest,但是此时非IE文件队象在操作对象时候即便是支持file协议,但是onreadystatechenge方法中的一些请求方法与相应状态码是HTTP特有的。并且XMLHttpRequest它为客户端提供了在客户端和服务器之间传输数据的功能

2018-07-12

code__openLdapTlsOpenldap配置TLS加密传输(完整版——shell脚本实现[分别在客户端与服务器端执行脚本,实现TLS加密])

客户端 注意事项: 脚本必须放在/root/workspace/clildapTls目录下: 需要已经配置好的以下文件: CA.crt CA.key clildapTls.sh index.txt openssl.cnf serial 服务器端 注意事项: 脚本必须放在/root/workspace/serldapTls目录下: 需要已经配置好的以下文件: CA.crt ldapsrv02.crt ldapsrv02.key

2018-07-05

code__openLdapTlsExpectOpenldap配置TLS加密传输(完整版——shell脚本实现[即在客户端执行代码,即可实现TLS加密])

客户端 注意事项: 脚本必须放在/root/workspace/clildapTls目录下: 需要已经配置好的以下文件: CA.crt CA.key clildapTls.sh index.txt 服务器端 注意事项: 脚本必须放在/root/workspace/serldapTls目录下: 需要已经配置好的以下文件: CA.crt ldapsrv02.crt ldapsrv02.key

2018-07-05

Linux系统C语言编程连接MySql数据库实现的用户 用户组 用户策略 管理系统(getopt解析命令行参数)

表字段描述: 1、users表(用户)字段有(id_ |name_名称|create_time_创建时间|creator_id_由谁创建|认证方式|dyn_sn_口令认证方式所需口令|dyn_pass_sn KEY认证方式所需文件|remark_描述) 2、usergroups表(用户组)字段有(id_|name_名称|create_time_创建时间|enable_type_策略状态开关|policy_type_策略的内容|remark_描述信息); 3、userGroupUser表(用户与用户组关系表)字段有(user_id_用户id|usergroup_id_用户所属组id); 功能描述

2018-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除