校验小货物,种种校验,搜罗CRC校验算法
2023/4/1 5:09:10 686KB CRC校验算法
1
由于项目需要,处理一个流媒体文件的crc32校验码。
网上查了很多的资料,发现了此校验码和生成多项式以及算法本身都有关系。
对于不同类型的文件所使用的多项式以及算法不同,对于不同的生成多项式所生成的crc32表不同,不同的算法也会产生不同的结果。
下面分类比较两种不同用途的crc32校验码的计算方法。
2020/1/12 11:38:49 4KB CRC32 校验
1
模仿数据链路层的gobackn协议/*该协议是搭载ack的回退n步协议*/#include#include"protocol.h"#definemax_seq7#defineflag126#defineESC100#definewait_time2700 //发送计时器等待的时间#defineack_wait_time280staticintphl_ready=0;unsignedcharbuf[max_seq+1][270];unsignedcharack[8];//发送空的ack帧unsignedcharin_buf[600],last_buf[520];//接收时的缓冲区;去掉冗余之后的缓冲区,为防备因误码两帧合并为一帧而定义了很大一个数组intnbuffered=0;//发送的帧数intbuf_size[max_seq+1];//记下以发送各帧的帧长intnext_frame_to_send=0;intframe_in_phl=0;//用于成帧intframe_expected=0;intack_expected=0;intbetween(inta,intb,intc){ if(((a<=b)&&(b<c))||((c<a)&&(a<=b))||((b<c)&&(c<a))) return1; elsereturn0;}//判断帧尾,防止出现误判escescflag为数据的情况intend_flag(intin_len){ intcount=0; inti; if(in_len=0;i--)//记录flag前的esc数目 count++; returncount%2;//若flag前的esc为偶数,则为帧尾}//成帧函数--数据帧voidsend_frame(char*my_buf,intlen){ intn; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //发送帧的帧号 for(n=0;n<len;n++) buf[frame_in_phl][n+2]=my_buf[n]; //将处理过的新帧赋值到缓冲区中 len=len+2; *(unsignedint*)(buf[frame_in_phl]+len)=crc32(buf[frame_in_phl],len); //在原始帧的基础上加检验和 buf_size[frame_in_phl]=len+4; //记录当前帧的长度,包括3个帧头,4个检验和 nbuffered=nbuffered+1; //缓冲区占用数加一 frame_in_phl=(frame_in_phl+1)%(max_seq+1);}//成帧函数--ack帧voidsend_ack() //ack帧的处理{ ack[0]=(frame_expected+max_seq)%(max_seq+1); ack[1]=max_seq+10; //ack帧的序号位,使ack[1]==frame_expected恒不成立 *(unsignedint*)(ack+2)=crc32(ack,2); //在原始帧的基础上加检验和}//主函数intmain(intargc,char**argv){intevent,arg,n,m,i,j,len=0,in_len=0; unsignedcharmy_buf[260]; intphl_wait=0;//在物理层中还没有被发送的帧protocol_init(argc,argv);enable_network_layer();for(;;){event=wait_for_event(&arg);switch(event){caseNETWORK_LAYER_READY:
2019/7/26 21:18:43 425KB go back n gobackn
1
CRC32计算程序,生成多项式是:G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1该生成多项式是IEEE的标准,应用在ETH,wifi等多个协议里面。
电脑上的文件校验工具,也基本采用这个crc32.用matlab实现,带正文。
包含little-endian、big-endian算法,已及相应的查表算法。
此外,还专门针对cksum、hashcalc这两个常见的校验软件,写了计算例子。
如果还在疑惑为什么cksum和crc32、hashcalc的结果不一样,建议看一下这个程序。
2016/3/8 23:50:58 6KB crc32 ieee eth cksum
1
目前这个工具支持对称加密算法(AES、3DES)、非对称加密算法(RSA)、单向散列算法(MD5、SHA1、CRC32)、Base64算法等,后期还会不定时新增别的算法,在使用过程中如有成绩欢迎邮件给我,我会及时优化和反馈。
2016/8/26 19:29:08 8.01MB AES/DES RSA MD5/SHA1/CRC BASE64
1
VMwarevSphereESXi6.5U2集成RTL81xx网卡驱动。
基于官方6.5.0.update02-8294253.x86_64版本集成IntelRTL-81xx系列网卡驱动。
—RTL8111B/RTL8168B/RTL8111/RTL8168—RTL8111C/RTL8111CP/RTL8111D(L)—RTL8168C/RTL8111DP/RTL8111E—RTL8168E/RTL8111F/RTL8411—RTL8111G/RTL8111GUS/RTL8411B(N)—RTL8118ASVMware-VMvisor-Installer-6.5.0.update02-8294253_rtl81xx.x86_64.iso强哥制作。
文件大小:355751936字节(339.27MB)修改日期:2019-04-2719:53MD5:e045eb9211ed8fc1e63d0f1d6cb9639bSHA1:8b02595ef3b1d52a5ccd28dcac2c79f09d20c414SHA256:cc2082af5c2af33fb6a2d9f7cf0f867c0d70fdab2737057d693a58ab39b2340eCRC32:2510aa00注意:RTL8111G实测OK,不断在使用,其他型号没验证过。
2016/5/2 1:47:31 204B ESXi65 RTL816 RTL811 RTL81x
1
【版本已更新:http://download.csdn.net/source/1687395】半成品,还有以下几部分未完成:1、断点续传;
(方法都在,代码没调好,就先注释掉了)(就是保存当前下载信息,下次重新读取,最简单的做法就是序列化,要用到的自己改改调调就成)2、自定义下载窗体;
(就像MessageBox.Show()一样,已经做了一个简单的Form)3、部分细节没做好,可能存在BUG;
(用着,遇到再说)涉及的一些应用:多线程--没用线程池,因为不好控制状态;
事件驱动--自我感觉不是很好,最好谁能改改;
另外,组件的封装也没仔细整理过~期待有人能做个完美的组件。
应用范围:文件下载、在线升级(这个组件就是为了下载升级文件而做的……)使用示例:(添加DLL引用)ListDTaskList=newList();foreach(……){DownloadMag.DTaskdt=newDTask();dt.Name="任务名";dt.FileName="文件名";dt.Size=文件大小;dt.URL="下载地址";dt.CRC32=CRC32校验值;dt.SaveMode=true;DTaskList.Add(dt);}newDownloadMag.DownloadForm(this).Show(DTaskList.ToArray(),"下载信息文件名");没时间修修改改,所以把这个半成品放出来了,也就当时抛砖引玉吧。
谁有兴味有空闲就提提意见,找找Bug,最好是把它做完美了:)意见请提到:http://blog.csdn.net/0xff/archive/2007/11/01/1861780.aspx
1
CRC32校验程序源代码,vc6.0下编译经过,请放心使用。
2019/10/23 4:13:17 27KB CRC32校验
1
CRC32算法的FPGA实现和C言语实现
2018/11/13 7:13:26 958KB CRC32 VC FPGA
1
用表驱动法来实现CRC8、CRC16、CRC32的数据校验,程序简约,通俗易懂
2022/9/4 21:15:29 2KB CRC8 CRC16 CRC32
1
共 32 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡