如何在vb中写crc32校验

来自:    更新日期:早些时候
vb如何实现CRC12校验~

  异或在计算机二进制运算中是一种常用运算,最常见于数据的简单加密。   它的运算规则是这样的,两组数据对位后进行比较——相同,即同为0或同为1,输出0;不同,输出1。   看下面的例子,你会掌握异或运算:  (第一组数据) :0011 0011 0011 0011  (第二组数据) :0000 1111 0011 1100  (异或运算结果):0011 1100 0000 1111 ————————————————————————————————————  我们先把校验对象(31 30 34 32 H)划成二进制:  0011 0001 0011 0000 0011 0100 0011 0010   把校验多项式(18 0D H)划成二进制:  0001 1000 0000 1101   据CRC12校验规则,被除数为校验对象后加12个“0”,除数为校验多项式,运算时以高位对齐。以下使用计算法对校验对象进行CRC12校验。在每次计算前,高位去零,一直计算到被除数位数少于除数位数时停止。   计算过程:  校验对象: 0011 0001 0011 0000 0011 0100 0011 0010  被除数 →  0011 0001 0011 0000 0011 0100 0011 0010 0000 0000 0000  校验多项式:0001 1000 0000 1101  除数  →  1 1000 0000 1101   高位去零,对齐后进行异或运算: 110001001100000011010000110010000000000000
/1100000001101
=000001001010100011010000110010000000000000(高位去零,再次运算) 1001010100011010000110010000000000000
/1100000001101
=0101010101110010000110010000000000000(高位去零,再次运算) 101010101110010000110010000000000000
/1100000001101
=011010101000110000110010000000000000(高位去零,再次运算) 11010101000110000110010000000000000
/1100000001101
=00010101011100000110010000000000000(高位去零,再次运算) 10101011100000110010000000000000
/1100000001101
=01101011111010110010000000000000(高位去零,再次运算) 1101011111010110010000000000000
/1100000001101
=0001011110111110010000000000000(高位去零,再次运算) 1011110111110010000000000000
/1100000001101
=0111110110011010000000000000(高位去零,再次运算) 111110110011010000000000000
/1100000001101
=001110110101110000000000000(高位去零,再次运算) 1110110101110000000000000
/1100000001101
=0010110100011000000000000(高位去零,再次运算) 10110100011000000000000
/1100000001101
=01110100000010000000000(高位去零,再次运算) 1110100000010000000000
/1100000001101
=0010100001111000000000(高位去零,再次运算) 10100001111000000000
/1100000001101
=01100001100010000000(高位去零,再次运算) 1100001100010000000
/1100000001101
=0000001101111000000(高位去零,再次运算) 1101111000000
/1100000001101
=0001111001101(高位去零,符合终止条件)=1111001101   所以,CRC12校验结果:11 1100 1101 →(十六进制)→ 3CDH————————————————————————————————————  看你自己能不能理解,CRC12校验类模块写好了再给你发过去。

Dim ReturnData(1) As Byte
Private Sub Command1_Click()
Dim CRC(2) As Byte
Dim d() As Byte '待传输数据
ReDim data(7) As Byte
data(0) = 1
data(1) = 3
data(2) = 0
data(3) = 0
data(4) = 0
data(5) = 1
Call CRC16(data, UBound(data) - 2, data(6), data(7)) '调用CRC16计算函数
'CRC(0)为高位
'CRC(1)为低位

End Sub

Function CRC16(data() As Byte, i As Integer, ByRef ReturnDatalo As Byte, ByRef ReturnDatahi As Byte) As String
Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC寄存器
Dim CL As Byte, CH As Byte '多项式码&HA001
Dim SaveHi As Byte, SaveLo As Byte
Dim Flag As Integer
CRC16Lo = &HFF
CRC16Hi = &HFF
CL = &H1
CH = &HA0
For i = 0 To UBound(data) - 2
CRC16Lo = CRC16Lo Xor data(i) '每一个数据与CRC寄存器进行异或
For Flag = 0 To 7
SaveHi = CRC16Hi
SaveLo = CRC16Lo
CRC16Hi = CRC16Hi \ 2 '高位右移一位
CRC16Lo = CRC16Lo \ 2 '低位右移一位
If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1
CRC16Lo = CRC16Lo Or &H80 '则低位字节右移后前面补1
End If '否则自动补0
If ((SaveLo And &H1) = &H1) Then '如果LSB为1,则与多项式码进行异或
CRC16Hi = CRC16Hi Xor CH
CRC16Lo = CRC16Lo Xor CL
End If
Next Flag
Next i
ReturnDatahi = CRC16Hi 'CRC高位
ReturnDatalo = CRC16Lo 'CRC低位
End Function
这个程序已经测试通过了,你可以试试看

两种方法:
1、查表法 通过字节内容查表后与下一个字节异或,再查表,再异或,直至最后得到校验码。在VB中设置定义数组后查表即可。
2、计算法 按照crc多项式,自己编写子程序进行计算,输入变量为需要校验的字节(可定义成字节数组),返回校验码。


如何在vb中写crc32校验视频

相关评论:
  • 13955489063如何在vb中写crc32校验
    钟宗爸两种方法:1、查表法 通过字节内容查表后与下一个字节异或,再查表,再异或,直至最后得到校验码。在VB中设置定义数组后查表即可。2、计算法 按照crc多项式,自己编写子程序进行计算,输入变量为需要校验的字节(可定义成字节数组),返回校验码。

  • 13955489063vb6.0+access利用Winsock做服务器端和客户端的软件
    钟宗爸4、数据区域 具体要传输的数据段落 5、异或校检码 为了检测数据的完整性,也可以用CRC16或CRC32等算法进行数据校检 6、包尾 用来完整识别一个包内容的结束标志 通过上面这个包结构,可以在数据包里放置小于65536个字节的内容进行传输 在处理传输数据时可以这么做:Type SendReport sr_head As Byte...

  • 13955489063我的戴尔电脑换了硬盘主版,以前重装系统用自带那张盘可以直接装。现在要...
    钟宗爸“写入方式”请选择“光盘一次刻录”,“操作”要选择“结束光盘(不可再写入!)” 没有刻录机的朋友,也可以用虚拟光驱(光盘TOOLS目录里有)加载ISO,生成虚拟光盘,运行光盘启动第一项“安装 XP SP3 装机版”即可;或用Winrar或UltraISO 把ISO里的System文件夹里的ylmf.gho文件提取出来,放到本地硬盘(系统盘除外),用O...

  • 13955489063花园里的鲜花开放了改成比喻句
    钟宗爸比喻句:花园里的鲜花开放了,简直成了花的海洋。

  • 13955489063VOB文件是什么意思?总共有多少格式呀?如avi.等
    钟宗爸DVTool 0.49:包括DVD备份器(备份和分析DVD以及MPEG电影(数据流、CSS、解析度);文件处理器(截断、克隆、拆分、合并文件,计算文件CRC32校验码,对MPEG1、MPEG2、VCD、XVCD、SVCD、DVD等的特别处理,多线程的缓冲,速度非常快);速率计算器(计算视频数据抓取捕捉速率,很象PAL\/NTSC\/Cinema转换);CPU监视器(CPU使用监视器...

  • 13955489063重装系统什么软件都没有怎么办?
    钟宗爸1、GHOST运行过程中出现A:\\GHOSTERR.TXT错误的问题? 解答:这是Ghost软件复制数据的过程中读写出错,就弹出一个对话框,大意是保存出错信息到A盘里.既然是读写出错,一般出现A:\\GHOSTERR.TXT错误有以下几种情况: 1.ISO文件正确或者ISO下载不完整,无论什么方式下载一定要校验MD5码 2.光盘质量:因购买光盘或者刻录盘...

  • 13955489063peid是电脑自带的么?如何卸载?
    钟宗爸支持文件夹批量扫描;插件增加到5个:General OEP、Kanal 1.3,FSG v1.33 Unpacker,CRC32(新增加的),PEiD 通用脱壳器 Forwinnt2kxp(新增加的)……注:部分插件Win9X下不能运行。估计你是在安装其他应用程序时,该程序被插入到你安装的应用程序里了,所以就一起安装了,如果卸载里找不到它,就用一些...

  • 13955489063XP系统怎么装在固态盘里
    钟宗爸1、GHOST运行过程中出现A:\\GHOSTERR.TXT错误的问题? 解答:这是Ghost软件复制数据的过程中读写出错,就弹出一个对话框,大意是保存出错信息到A盘里.既然是读写出错,一般出现A:\\GHOSTERR.TXT错误有以下几种情况: 1.ISO文件正确或者ISO下载不完整,无论什么方式下载一定要校验MD5码 2.光盘质量:因购买光盘或者刻录盘...

  • 13955489063谁介绍一个Win7的深度技术系统啊
    钟宗爸2、运行稳定,兼容性好 - 使用WIN7旗舰x86 SP1简体中文版做为源安装盘,通过正版验证,集成了最新安全补丁。 - 自动安装AMD\/Intel双核CPU驱动和优化程序,发挥新平台的最大性能。 - 支持银行网银,输入密码不会出现浏览器无响应的问题。 3、预先优化与更新 - 集成DX最新版,MSJAVA虚拟机,VB\/VC...

  • 13955489063我买了一张金山毒霸2007,不知道可以在多少台机上面用呢?
    钟宗爸1.引擎新增加对多种壳的脱壳能力:金山毒霸2007增加了BERO 1.0、ExeStealth 2.76、NPCH 1.0、PolyCryptPE 1.0、PECrc32 0.88、FSG 1.33、FSG 2.00、Anakin 1.00脱壳能力的支持。2.为方便用户提供通行证智能保存功能:可以在填写或修改通行证账号的过程中智能保存通行证账号和密码,为用户提供...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网