导航:首页 > 操作系统 > 单片机异或校验

单片机异或校验

发布时间:2025-09-22 20:37:14

㈠ 请问什么是异或校验

异或校验算法(又称为BCC校验)

下面就是异或校验的算法,多用于串口通信:

#include "stdio.h"

void main()

{

int i;

//任意10个数值,也可以不是8位

unsigned char data[10]={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD};

unsigned char out;//用于保存异或结果

out=0x00;

for (i=0;i<sizeof(data);i++)

{

out^=data;

}

printf("原来的校验值:%X ",out);

out^=(data[0]^0xee);//将data[0]改为新数据后计算新校验和的方法

out^=(data[5]^0x20);//将data[5]改为新数据后计算新校验和的方法

printf("修改后校验值:%X ",out);

data[0]=0xee; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确

data[5]=0x20; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确

out=0x00;

for (i=0;i<10;i++)

{

out^=data;

}

printf("原始方法得出校验值:%X ",out);

}

作用:

防止自己的程序被篡改。

有些可执行程序,当被改了资源时再运行会有文件已损坏的提示,这就是使用了数据校验。本例是用md5做为数据校验的算法。当然你可以使用个性化的比如des作为数字签名,那样安全性更高。

(1)单片机异或校验扩展阅读:

最简单的检验

实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。

应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。

奇偶校验Parity Check

实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。

应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。

md5校验和数字签名

实现方法:主要有md5和des算法。

适用范围:数据比较大或要求比较高的场合。如md5用于大量数据、文件校验,des用于保

密数据的校验(数字签名)等等。

应用例子:文件校验、银行系统的交易数据

参考资料:网络-数据校验

阅读全文

与单片机异或校验相关的资料

热点内容
程序员自己开的网店 浏览:109
python批量定义数组 浏览:763
绝对恋爱命令2 浏览:396
哪里回收单片机 浏览:164
单片机串口软件下载 浏览:185
单片机跑linux 浏览:455
程序员如何抠鼻 浏览:282
手机怎么搭建app 浏览:41
tftp服务器如何调试助手 浏览:389
如何获取linux的ip 浏览:32
单片机异或校验 浏览:205
69乘20的算法 浏览:532
三菱PLC上传未编译 浏览:849
51单片机按键干扰数码管 浏览:600
安卓9x怎么设置白名单 浏览:432
单机游戏阿里云服务器 浏览:215
初级程序员必读物品 浏览:903
职教云题库服务器 浏览:124
解压软件视频打不开 浏览:201
鸡兔同笼python编程题 浏览:825