📄 337.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://apue.dhs.org"><font face="黑体"><big><big>apue</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> ● UNIX网络编程 (BM: clown) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="184.htm">上一层</a>][<a href="338.htm">下一篇</a>]
<hr><p align="left"><small>发信人: xh (强吻), 信区: Socket <br>
标 题: CRC <br>
发信站: 华南网木棉站 (Mon Nov 8 20:35:09 1999), 转信 <br>
<br>
记得有位师弟问过要CRC的东西,今天逛去清华,就转了这篇 <br>
东西过来。也讲两句吧,CRC是用来验证数据完整性的,如链路层在发 <br>
送数据帧的时候计算出CRC值,并保存在帧末尾。接受方收到帧时 <br>
再算一次,比较判断数据是否完整。一些废话是,在网络层,IP <br>
包用校验和判断。而一些安全要求比较高的报文,用报文摘要 <br>
判断报文有没有出错和被外人恶意改动。 <br>
<br>
发信人: nomore (小苏苏), 信区: Networking <br>
标 题: Re: 有谁知道Ethernet 2的CRC怎么算? <br>
发信站: BBS 水木清华站 (Tue Dec 30 12:20:38 1997) <br>
<br>
As its name implies (Cyclic Redundancy Check) a crc adds redundancy <br>
whereas the topic of this group is to remove it. But since this <br>
question comes up often, here is some code (by Rob Warnock <rpw3@sgi.com>). <br>
<br>
The following C code does CRC-32 in BigEndian/BigEndian byte/bit order. <br>
That is, the data is sent most significant byte first, and each of the bits <br>
within a byte is sent most significant bit first, as in FDDI. You will need <br>
to twiddle with it to do Ethernet CRC, i.e., BigEndian/LittleEndian byte/bit <br>
order. [Left as an exercise for the reader.] <br>
<br>
The CRCs this code generates agree with the vendor-supplied Verilog models <br>
of several of the popular FDDI "MAC" chips. <br>
<br>
u_long crc32_table[256]; <br>
/* Initialized first time "crc32()" is called. If you prefer, you can <br>
* statically initialize it at compile time. [Another exercise.] <br>
*/ <br>
<br>
u_long crc32(u_char *buf, int len) <br>
{ <br>
u_char *p; <br>
u_long crc; <br>
<br>
if (!crc32_table[1]) /* if not already done, */ <br>
init_crc32(); /* build table */ <br>
crc = 0xffffffff; /* preload shift register, per CRC-32 spec */ <br>
for (p = buf; len > 0; ++p, --len) <br>
crc = (crc << 8) ^ crc32_table[(crc >> 24) ^ *p]; <br>
return ~crc; /* transmit complement, per CRC-32 spec */ <br>
} <br>
} <br>
<br>
/* <br>
* Build auxiliary table for parallel byte-at-a-time CRC-32. <br>
*/ <br>
#define CRC32_POLY 0x04c11db7 /* AUTODIN II, Ethernet, & FDDI */ <br>
<br>
init_crc32() <br>
{ <br>
int i, j; <br>
u_long c; <br>
<br>
for (i = 0; i < 256; ++i) { <br>
for (c = i << 24, j = 8; j > 0; --j) <br>
c = c & 0x80000000 ? (c << 1) ^ CRC32_POLY : (c << 1); <br>
crc32_table[i] = c; <br>
} <br>
} <br>
<br>
<br>
<br>
<br>
-- <br>
-- <br>
<br>
<br>
-- <br>
<br>
<br>
<br>
<br>
V2 Studio Xh2000 <br>
<br>
<br>
<br>
<br>
※ 修改:.xh 于 Nov 8 20:37:04 修改本文.[FROM: 202.38.248.62] <br>
发信人: scz (小四), 信区: Socket <br>
标 题: Re: CRC <br>
发信站: 华南网木棉站 (Tue Nov 9 12:59:45 1999), 转信 <br>
【 在 xh (强吻) 的大作中提到: 】 <br>
: 记得有位师弟问过要CRC的东西,今天逛去清华,就转了这篇 <br>
可以去freesoft.cei.gov.cn下载tripwire的源代码包 <br>
里头有个目录下是八种加密校验算法的源代码, <br>
包括crc/crc32/md5/snefru等等,不用做太大修改就 <br>
可以单独提取出来使用。我在华中站系统安全版给出 <br>
过一个在VC下单独使用md5算法的例子,现在在精华区 <br>
里。crc的那些可以自己简单修改得到。 <br>
BTW,看到水木转载过NetGuy写的一篇关于Base64的文章, <br>
真是唏嘘不已。 <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="184.htm">上一层</a>][<a href="338.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -