- 博客(56)
- 资源 (3)
- 收藏
- 关注
原创 看看这个代码为啥死循环
#include void loop() ;void addr() ;int main (){ addr() ; loop() ;}long *p ;void loop(){ long i, j ; j = 0 ; for ( i = 0 ; i {
2014-07-24 19:20:55
905
4
原创 端口探测
代码思想:开启线程数可以自定义,每个线程去探测一个IP地址下的设定范围内的端口,直到所有IP都被探测过。其实对于每个IP又开始开多个线程去做,这样会快很多,shaosha
2014-06-12 14:46:21
1082
1
原创 汉明码与交织技术
汉明码是由Richard Hanming于1950年提出的,它具有一位纠错能力。设欲检测的二进制数据为n位,为使其具有纠错能力,需增添k位检测位,组成n+k位的数据。为了能准确对错误定位以及指出数据没错,新增添的检测位数k应满足:2k≥n+k+1由此关系科求得不同数据长度n所需检测位的位数k,如表1.1表1.1 数据长度与检测位位数的关系nk(最
2014-06-08 08:34:04
3066
原创 RAID6 P+Q实现
RAID6是一种数据冗余恢复的方案,具体思想详见维基百科:本文主要参考了两个博客:RAID6算法解析点击打开链接 RAID6 P+Q算法 点击打开链接实现了:Galois域的乘法和除法、RAID6 P+Q方法的验证
2014-06-08 08:18:07
3521
1
原创 macbook装机注意事项&&双系统崩溃解决办法
最近给朋友macbook pro本装win7,遇到了各种各样的问题,在这里做个笔记,也希望能帮助大家。 1.mac装win7就用mac系统里实用工具的boot camp就行:先把win7镜像拷进来,进boot camp ,插上一个USB2.0的U盘,然后根据提示会下载一些驱动,然后就把你的U盘做好了。它会自动重启进行win7的安装。如果用的是3.0的U盘,在安装时可能会提示“DVD/CD驱
2014-02-10 00:35:40
14196
原创 负载均衡服务器
每次有客户端连接时选择当前连接数(CR)最小的http服务器进行连接,然后转发请求和应答,用线程实现:#include "unp.h"#include #include #include #include #include #include #include #include #define gettid() syscall(__NR_gettid)
2014-01-07 16:22:56
697
原创 monitor客户端
配合http服务器(http://blog.csdn.net/hit_fantasy/article/details/17961539)使用的monitor命令专用客户端:#include "unp.h"int myreadline(int fd, char *buf, int n);void monitor_cli(FILE *fp, int sockfd);int main(int
2014-01-07 16:17:44
714
原创 http客户端
配合http服务器(http://blog.csdn.net/hit_fantasy/article/details/17961539)使用的简单客户端:#include "unp.h"void apply(int sockfd,const char *ip,const char* fileName);int dealurl(const char * url,char *ip,char
2014-01-07 16:15:16
873
原创 http服务器
最简单的http服务器,可以发html、jpg、gif给客户端,有日志记录功能:#include "unp.h"#include #include #include #include #include #include #include #include #include #define gettid() syscall(__NR_gettid)
2014-01-07 16:10:00
1123
原创 ftpd chroot的实现
首先安装pure-ftpd:Sudo apt-getinstall pure-ftpd配置过程:fantasy@hp:~$ suroot密码: root@hp:/home/fantasy#groupadd ftpgroupgroupadd:“ftpgroup”组已存在root@hp:/home/fantasy#useradd -g ftpgroup -d /home/f
2014-01-07 15:58:28
2299
原创 passwd程序功能实现
实验内容:自己编制文件和程序,仿制passwd程序修改/etc/shadow的功能,包括:a) 自己设置一个类/etc/shadow文件aaa,该文件中约定好内容格式,和读取该文件的程序相配合,文件中包括超级用户及其内容、普通用户及其内容。b) 编制程序使得:Root用户能够读取和修改aaa文件中所有用户的内容,普通用户仅能够读取和修改aaa文件中属于自己用户的内容。c) 普通用户
2014-01-07 15:43:47
1794
原创 双数组AC自动机(doubleArrayTrie)的实现
按照PPT上的描述写了个最简单的版本,没敢测大数据。主要是几个表的构建:首先构建next,base,check表。根据失效函数的定义:父状态的失效函数输入当前字符,可得出每个状态的失效函数(要转移到的状态)可以发现每个状态要转移到的状态是一定的,如下图:所以可以构造一个fail表,由上述三个表来构建。为了输出方便,又构造了一个output表。代码如下:#incl
2013-12-13 23:29:34
4840
原创 RSA
密钥生成:公钥e,n放在publicKey.txt中,私钥d,p,q放在private.txt中因为要按字符(0-255)处理,所以素数表从17开始,以确保n大于256#include #include #include #include using namespace std;//素筛法得出的大素数表long long int primeTable[162]={17,19
2013-05-12 20:06:09
699
转载 DES
DES写不出来。。还是自己太弱了。。。转某位神牛的代码来学习学习:#include "stdio.h"#include "memory.h"#include "time.h"#include "stdlib.h"#define PLAIN_FILE_OPEN_ERROR -1#define KEY_FILE_OPEN_ERROR -2#define CIPHER_FILE_OP
2013-05-05 18:05:31
640
原创 Z26上维吉尼亚和行置换的乘积密码体制
首先生成维吉尼亚密码的密钥和行置换密码的密钥输入m和n,行置换是用m*m矩阵每组做的,维吉尼亚的密钥长度为n结果分别放在3个文本文件中#include #include #include #include #include #include using namespace std;int main(){ srand(time(NULL)); int
2013-05-03 15:47:58
1462
原创 Z26上的行置换密码体制
类似这样的加密方法:明文放在“in.txt”中,输出加密解密的结果:#include #include #include #include #include using namespace std;#define SIZE 5char c_matrix[SIZE][SIZE];char r_matrix[SIZE][SIZE];int len;void inco
2013-05-01 01:15:07
874
原创 Z26上的维吉尼亚密码体制
多表代替密码,一阶的hill密码加密: c=p+ki(mod26)解密: p=c-ki(mod26)密钥k循环使用读文件"in.txt"加密结果放在"encode.txt"中,解密结果放在"decode.txt"中#include #include #include #include using namespace std;char temp;char ans
2013-04-27 22:35:47
1243
2
原创 Z26上的仿射密码体制
加密过程y=k1x+k2(mod26)解密过程x=_k1(y-k2)(mod26)_k1为k1的乘法逆元,因为有26这个范围,而且逆元唯一,所以可直接脑残试出_k1的值 具体实现:读文本文件"in.txt"进行加密,结果放到"encode.txt"中,同时进行解密,结果放在"decode.txt"中#include #include #include #i
2013-04-27 19:57:34
1116
原创 希尔密码
希尔密码用一个矩阵加密,用它的逆矩阵解密。 明文放在"in.txt"中程序进入先输入n的值,然后输入n阶矩阵接下来输入1加密,结果放在"encode.txt"中重启程序输入相同n和矩阵后,输入2解密,结果放在"decode.txt"中因为是按字节读取加密解密,所以可以处理任何格式的文件,解密后自行修改文件后缀即可恢复运行#include #include #incl
2013-04-25 23:34:02
1766
原创 关键路径求解算法
关键路径求解要用到拓扑排序,先从头往后拓扑,在ve[i]中记录每个事件的最早发生时间。然后把ve[]的值赋给vl[],从后边向前求每个事件的最迟发生时间,记录在vl[]中。如果ve[]中的值和vl[]中的值对应相等,则这个事件在关键路径上。 假设初始AOE网是这样的: 关键路径:代码:#include #include #include #includ
2013-04-09 17:09:33
1377
原创 拓扑排序算法
用indegree来记录每个点的入度,每次输出入度为0的点,然后继续往后找。#include #include #include #include using namespace std;int map[101][101];int indegree[101];int n,m;bool topoSort(){ queue Q; int nodeCount=0
2013-04-08 16:02:37
812
原创 HOJ 1211 全源最短路
直接套floyd模板://floyd hoj 1211#include #include #define INF 999999using namespace std;int map[101][101];void floyd(int n){ for(int k=0; k<n; k++) { for(int i=0; i<n; i++)
2013-04-04 15:43:19
635
原创 HOJ 1811 最小生成树
最小生成树入门题,输入n个坐标点,输出连接这些点的最小距离和。解法1: Kruskal//kruskal 1811#include #include #include #include #include #define MAX 105using namespace std;struct Point{ double x,y;}point[MAX];struc
2013-04-02 22:39:51
799
1
原创 闭散列表及其查找算法的实现
在一个数组中模size进行散列,用count来判满,也叫开放地址法。#ifndef openAddress_H_#define openAddress_H_#include using namespace std;struct openAddressNode{ int data; bool used;};class hashTable{private:
2013-04-01 21:07:36
1744
原创 开散列表及其查找算法的实现
一个头结点数组,散列后的元素插入数组元素后的链表中。#ifndef listAddress_H_#define listAddress_H_#include using namespace std;struct node{ int data; node* next;};class hashTable{private: int size; n
2013-04-01 21:03:58
1103
原创 排序性能测试比较
用了头文件“sort.h” 附链接: http://blog.csdn.net/hit_fantasy/article/details/8739985用rand()生成随机数组,然后用start=clock(); XXXXSort(a,len); finish=clock();来计时。基数排序没有做,不知道怎么确定基数。#include #include #include
2013-03-30 14:22:27
670
原创 各种排序实现
冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、基数排序、堆排序的实现:#ifndef Sort_H_#define Sort_H_#include #include #include #include #include using namespace std;inline void exchange(int &a,int &b){ int temp=a
2013-03-30 14:17:47
907
原创 MP3播放器
用了windows的mcisendsrting接口,挺好玩的。#include #include #include #include #include using namespace std;class mp3player{public: mp3player(); mp3player(const char *p); ~mp3player();
2013-03-28 14:26:24
947
原创 AES简单实现
#include #include #include using namespace std;typedef unsigned char byte;//加法byte add(byte a,byte b){ return a^b;}//乘法byte multiply(byte a,byte b){ //16bit unsigned short int
2013-03-28 14:24:14
722
原创 商场家电库存模型
主要练习链表操作,插入排序。#include #include #include #include #include #include #include using namespace std;void menu(){ system("color 5f"); cout<<"商场家电的库存模型"<<endl<<endl; cout<<"1.插入"<<e
2013-03-28 14:22:26
1130
原创 学生信息管理系统
大一时候的作业。。。#include #include #include #include #include #include using namespace std;void menu(){ system("color 5f"); cout<<"学生成绩综合管理系统"<<endl<<endl; cout<<"1.新增学生信息"<<endl<<end
2013-03-28 14:20:39
845
原创 统计单词个数排序输出
在目录下放"in.txt"作为读入,放"out.txt"作为输出。#include #include #include struct{ char ch[50]; int num;} list[10000],temp;int main(){ //读文件 FILE *fin=fopen("in.txt", "r"), *fout=fopen("ou
2013-03-28 14:19:12
874
原创 求原根
#include #include #include // m^n % kint quickpow(int a,int b,int n){ int t = 1; if (b == 0) return 1; if (b == 1) return a%n; t = quickpow(a, b>>1, n); t
2013-03-28 14:15:59
1128
原创 脑残法计算a对模数m的阶
#include #include #include using namespace std;unsigned long int a[10000]={2}, num=1;unsigned long int j=0;int max_gongyue(int num1,int num2){ int temp,m,n; if(num1<num2) {
2013-03-28 14:14:44
1883
原创 解同余方程
#include using namespace std;int max_gongyue(int num1,int num2){ int temp,m,n; if(num1<num2) { temp=num1; num1=num2; num2=temp; } m=num1; n=num2;
2013-03-28 14:12:46
1202
原创 计算欧拉函数
#include #include #include #include #include using namespace std;unsigned long int a[10000]={2}, num=1;unsigned long int j=0;inline int prime(unsigned long int x){ unsigned long int
2013-03-28 14:10:58
4292
原创 快速幂
还不是太理解,先用着吧。。。#include using namespace std;long long modexp(int a,int b,int n){ long long ret=1; long long tmp=a; while(b) { if(b&0x1) ret=ret*tmp%n; tmp=tmp*t
2013-03-28 14:09:07
697
CodeBlocks设置winpcap开发环境
2014-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人