⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hash.c

📁 基于TCP/IP协议的网络入侵检测系统是在Linux平台下
💻 C
字号:
#include <sys/types.h>#include <sys/time.h>#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>static u_char xor[12];static u_char perm[12];static voidgetrnd (){  struct timeval s;  u_int *ptr;  int fd = open ("/dev/urandom", O_RDONLY);  if (fd > 0)    {      read (fd, xor, 12);      read (fd, perm, 12);      close (fd);      return;    }  gettimeofday (&s, 0);  srandom (s.tv_usec);  ptr = (u_int *) xor;  *ptr = random ();  *(ptr + 1) = random ();  *(ptr + 2) = random ();  ptr = (u_int *) perm;  *ptr = random ();  *(ptr + 1) = random ();  *(ptr + 2) = random ();}voidinit_hash (){  int i, n, j;  int p[12];  getrnd ();  for (i = 0; i < 12; i++)    p[i] = i;  for (i = 0; i < 12; i++)    {      n = perm[i] % (12 - i);      perm[i] = p[n];      for (j = 0; j < 11 - n; j++)	p[n + j] = p[n + j + 1];    }}u_intmkhash (u_int src, u_short sport, u_int dest, u_short dport){  u_int res = 0;  int i;  u_char data[12];  *(u_int *) (data) = src;  *(u_int *) (data + 4) = dest;  *(u_short *) (data + 8) = sport;  *(u_short *) (data + 10) = dport;  for (i = 0; i < 11; i++)    res = ( (res << 8) + (data[perm[i]] ^ xor[i])) % 0xff100f;  return res;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -