TypechoJoeTheme

武小栈

武小栈

学习、记录、总结、分享
搜索到 2 篇与 技术栈 的结果
2019-09-18

[技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码

[技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码
1.CRC、FCS是什么CRC,全称Cyclic Redundancy Check,中文名称为循环冗余校验,是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。FCS,全称Frame Check Sequence,中文名称为帧校验序列,俗称帧尾,即计算机网络数据链路层的协议数据单元(帧)的尾部字段,是一段4个字节的循环冗余校验码。注:CRC循环冗余校验和FCS帧校验序列是单独的概念,CRC是一种错误校验方法,FCS是帧尾校验码,FCS可以采用CRC校验方法,也可以采用其他校验方法。2.CRC算法原理我们可以把任意的一串二进制数据表示为一个与之对应的多项式。比如:二进制数据:1100101 多项式:$x^6 + x^5 + x^2+1$多项式: $x^6 + x^4+x^3 + x^2+1$二进制数据:1011101有了这样的对应关系,对二进制数据的CRC校验就可以利用多项式运算规则进行校验计算。CRC校验算法正是采用了模2除法,在数据处理里的具体表现为异或运...
武小栈
2019-09-18

技术栈

5,594 阅读
0 评论
2019年09月18日
5,594 阅读
0 评论
2019-09-11

[技术栈]C#利用Luhn算法(模10算法)对IMEI校验

[技术栈]C#利用Luhn算法(模10算法)对IMEI校验
1、Luhn算法(模10算法)通过查看ISO/IEC 7812-1:2017文件可以看到对于luhn算法的解释,如下图:算法主要分为三步:第一步:从右边第一位(最低位)开始隔位乘2;第二步:把第一步所得的每一个数字加入到原来的数中,比如9*2=18,为1+8;第三步:用以0结尾且大于第二步所获得的数的和的最小整数减去第二步所获得的和即可以获得校验位,如70-67=3,3即为校验位,如果第二步所有数字的和以0结尾,比如30、40、50等,那么校验为0;2、IMEI校验IMEI码由GSM(Global System for Mobile Communications,全球移动通信协会)统一分配,授权BABT(British approvals Board of Telecommunications,英国通信认证管理委员会)审受。在TS.06 IMEI Allocation and Approval Process中规定IMEI校验应该通过Luhn算法计算,如下图所示:3、C#代码public class LuhnCalcCheckDigit { /// <summar...
武小栈
2019-09-11

技术栈

5,441 阅读
1 评论
2019年09月11日
5,441 阅读
1 评论