fd

2017-2018-1 20155321 《信息安全系统设计基础》实验五——实时系统

…衆ロ難τιáo~ 提交于 2020-02-02 06:00:33
2017-2018-1 20155321 《信息安全系统设计基础》实验五——实时系统 任务一 两人一组 基于Socket实现TCP通信,一人实现服务器,一人实现客户端 研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5 选用合适的算法,基于混合密码系统实现对TCP通信进行机密性、完整性保护。 学有余力者,对系统进行安全性分析和改进 实验步骤 实验前的准备 下载OpenSSL最新版本: 参考网址 解压源代码:输入命令 tar xzvf openssl-1.0.2n.tar.gz 进入源代码目录:输入命令 cd openssl-1.0.2n 编译安装:依次输入命令 ./config 、 make 和 sudo make install 测试是否安装成功:输入命令 make test 由上图可以发现,安装成功 Socket实现TCP通信 主要是实现TCP/IP协议中的三次握手 在实际实现的过程中按照下图所示的步骤,调用系统函数即可: 此项实践内容在实验三中已经实现 服务端 /*将buf中的字节内容写入文件描述符fd*/ ssize_t writen(int fd, const void * vptr, size_t n){ size_t nleft; ssize_t nwritten; const char * ptr; ptr = vptr;

linux之间进程通信

扶醉桌前 提交于 2020-02-02 00:17:47
进程间通信方式: 同主机进程间数据交换机制: pipe(无名管道) / fifo(有名管道)/ message queue(消息队列)和共享内存。 必备基础: fork() 创建一个与之前完全一样的进程,这两个进程执行没有固定的先后顺序,哪个进程先执行要看系统的进程调度策略。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都 复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。    vfork : 与fork用法相同,但是他和父进程共享同样的数据存储,因此无需完全复制父进程的地址空间。 // fork() study example 1#include <unistd.h> #include <stdio.h> int main () { pid_t fpid; //fpid表示fork函数返回的值 int count=0; // fork 会将这个变量存在两个不同的内存中,所以两次count的值都是 1 ,而不是 1,2 。 fpid=fork(); if (fpid < 0) printf("error in fork!"); else if (fpid == 0) { printf("i am the child process, my process id is %d、n",getpid(

libnids使用举例

点点圈 提交于 2020-02-01 11:33:54
---[[ libnids应用实例 ]]---------------------------------- 1、nids_next()函数的应用 ============================ cut here ============================ /* This is an example how one can use nids_getfd() and nids_next() functions. You can replace printall.c's function main with this file. */ #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int main () { // here we can alter libnids params, for instance: // nids_params.n_hosts=256; int fd; int time = 0; fd_set rset; struct timeval tv; if (!nids_init ()) { fprintf(stderr,"%s\n",nids_errbuf); exit(1); } nids_register_tcp (tcp_callback); fd =

EIGRP-增强内部网关路由协议

那年仲夏 提交于 2020-01-31 18:53:46
EIGRP Enhanced Interior Gateway Routing Protocol 即 增强内部网关路由协议。也翻译为 加强型内部网关路由协议。 运行了EIGRP的路由器维持3张表:neighbortable,topologytable和routingtable.其中neighbortable保存了和路由器建立了邻居关系的,直接相连的路由器;topologytable包含路由器学习到的到达目的地的所有路由条目,其过程如下: 1.neighbortable中的每个邻居都转发1份IP路由表的拷贝给它们的邻居 2.然后每个邻居把从它们自己的邻居处得来的路由表存储在自己的EIGRP拓扑数据库中 3.EIGRP检查拓扑数据库,然后选择出一条到达目的地的最佳路由 4.EIGRP从拓扑数据库中选择到达目的地的最佳的successorroutes,然后把它们放到路由表里.路由器为每种协议(比如IP,IPX)各自保持1张单独是路由表 AD和FD 通告距离(AD):也称为报告距离, 下一跳路由器到目的地的度量值. 可行距离(FD):是本地路由器到达目的地的度量值. 后继者和可行后继者 后继者(S):FD最小的 可行后继者(FS):可行后继者AD小于后继者的FD值(满足AD小于后继者的FD才是可行后继者) EIGRP度量值 计算EIGRP使用一个复合度量,可根据以下指标: 带宽

node 文件的同步、异步写入

折月煮酒 提交于 2020-01-31 11:18:25
文件系统 (1)通过node来操作系统中的文件 (2)使用前要先引入fs核心模块,直接require引入,无需下载 操作文件系统两种方式 同步文件系统会阻塞程序,除非操作完成,不会执行下面代码 异步文件系统不会阻塞程序,而是在操作完成后通过回调函数返回结果 文件的同步写入 (1)fs.openSync(path,flags,mode)返回一个文件特殊值,可通过返回值对文件进行操作 path:路径 flags:打开文件操作的类型 'r':只读 'w':只写 mode:文件权限,一般针对linux,可不写 (2)fs.writeSync(文件特殊值,'写入内容',距离首部距离数值/可选,'字符编码格式默认为utf-8'/可选); (3)fs.closeSync(文件特殊值); //保存并关闭文件,减小服务器开销,否则会一直占用服务器 以追加方式 fs.appendFileSync(路径,'内容'); 文件的异步写入 (1)fs.open(路径,文件操作类型,回调函数function(err,fd){ 回调函数有两个参数,err错误对象,没有为null,fd文件描述符 可通过arguments查看 }); 'r':只读 'w':只写 //没有文件会自动创建一个文件 注意:**必须在打开函数的回调函数中写** (2)fs.write(文件描述符,'内容',距首部位置数值/可选,编码格式

从discuz里面拿来的东东[转phpx]

懵懂的女人 提交于 2020-01-31 00:20:54
<?php 加解密函数 $encode = authocode ( '我要加密' , 'ENCODE' ); $decode = authocode ( '我要解密' , 'DECODE' ); $auth_key = 34577 ; //密钥 function authcode ( $string , $operation , $key = '' ) { $key = md5 ( $key ? $key : $GLOBALS [ 'auth_key' ]); $key_length = strlen ( $key ); $string = $operation == 'DECODE' ? base64_decode ( $string ) : substr ( md5 ( $string . $key ), 0 , 8 ). $string ; $string_length = strlen ( $string ); $rndkey = $box = array(); $result = '' ; for( $i = 0 ; $i <= 255 ; $i ++) { $rndkey [ $i ] = ord ( $key [ $i % $key_length ]); $box [ $i ] = $i ; } for( $j = $i = 0 ; $i < 256 ; $i ++)

PHP转换IP地址到真实地址

与世无争的帅哥 提交于 2020-01-31 00:16:54
想要把IPv4地址转为真实的地址,肯定要参考IP数据库,商业的IP数据库存储在关系型数据库中,查询和使用都非常方便,但是成本不是个人和小公司愿意承受的,所以简单应用的思路就是利用一些免费的IP数据库或者一些大网站提供的查询API,他们的数据量足够我们使用了。 1. 利用纯真IP数据库 利用本地的QQWry.Dat文件,优点是查询速度非常快,缺点是数据库文件要放在自己的空间内并且要偶尔更新数据库。时间关系废话不多说,下面是使用这个文件的函数,如果是在wordpress里面使用这个功能,把下面的代码写入主题下面的functions.php里面,然后在comments-list的输出<?php echo convertip(get_comment_author_ip()); ?>即可;如果是其他程序引用,输入一个有效的IPv4地址就可以得到一个真实的地址。 function convertip($ip) { //IP数据文件路径 $dat_path = 'QQWry.Dat'; //检查IP地址 //if(!preg_match("/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/", $ip)) { // return 'IP Address Error'; //} //打开IP数据文件 if(!$fd = @fopen($dat_path, 'rb')){ return

PHP-php-fpm配置优化

本小妞迷上赌 提交于 2020-01-31 00:16:19
前言:   1.少安装PHP模块, 费内存   2.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)(我是修改/etc/rc.local,加入ulimit -SHn 51200的) echo `ulimit -HSn 65536` >> /etc/profile echo `ulimit -HSn 65536` >> /etc/rc.local source /etc/profile   如果`ulimit -n`数量依旧不多(即上面配置没生效)的话, 可以在 /etc/security/limits.conf 文件最后加上 * soft nofile 51200 * hard nofile 51200 1. 与Nginx使用Unix域Socket通信(Nginx和php-fpm在同一台服务器)    Unix域Socket因为不走网络,的确可以提高Nginx和php-fpm通信的性能,但在高并发时会不稳定 。   Nginx会频繁报错:connect() to unix:/dev/shm/php-fcgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream   可以通过下面两种方式提高稳定性:   1)调高nginx和php-fpm中的 backlog

python画图

可紊 提交于 2020-01-30 02:25:29
机器猫: # -*- coding: utf-8 -*- from turtle import * import turtle speed(0) penup() seth(180) fd(200) seth(0) penup() #外圈头 circle(150, 40) pendown() fillcolor('dodgerblue') begin_fill() circle(150, 280) end_fill() #外圈头 fillcolor("red") begin_fill() #外圈头 seth(0) #项圈 fd(200) circle(-5,90) fd(10) circle(-5,90) fd(210) circle(-5,90) fd(10) circle(-5,90) end_fill() #项圈 fd(183) #右脸 left(45) fillcolor("white") begin_fill() circle(120,100) seth(90) #眼睛 a = 2.5 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 lt(3) fd(a) else: a += 0.05 lt(3) fd(a) penup() seth(180) fd(60) pendown() seth(90)

信息安全系统设计基础第九周学习总结

自古美人都是妖i 提交于 2020-01-29 04:08:00
系统级I/O 10.1 UNIX I/O 1.打开文件:一个应用程序要访问一个I/O设备,即要求内核打开相应文件。 2.描述符:内核返回一个小的非负整数,在后续对此文件的所有操作中标识这个文件。 标准输入(描述符0):STDIN_FILENO 标准输出(描述符1):STDOUT_FILENO 标准错误(描述符2):STDERR_FILENO 3.文件位置:从文件开头起始的字节偏移量k。应用程序能够通过执行seek操作,显式设置文件当前位置 10.2 打开和关闭文件 1.flags: O_RDONLY:只读 O_WRONLY:只写 O_RDWR:可读可写 2.mode:mode与umask共同指定了新文件的访问权限位。 3.文件的访问权限位:mode & ~umask umask:umask需要在打开文件前使用函数umask(umask);进行设置 10.3 读和写文件 1.返回:若成功则为实际传送的字节数量;-1表示错误;0表示EOF fd:源文件的描述符 n:拷贝最多n个字节 buf:目标存储器位置 ssize_t write(int fd,const void *buf, size_t n); 2.返回:若成功则为实际写的字节数量;-1表示错误 buf:源存储器位置 n:拷贝最多n个字节 fd:目标文件的描述符 不足值出现情况: 读时遇到EOF 从终端读文本行 读和写网络套接字