数据安全很重要,如何保证数据的有效性?嵌入式常用的校验算法介绍
扫描二维码
随时随地手机看文章
01
校验和
uint8_t CheckSum(uint8_t *Buf, uint8_t Len)
{
uint8_t i = 0;
uint8_t sum = 0;
uint8_t checksum = 0;
for(i=0; i
{
sum += *Buf++;
}
checksum = sum & 0xff;
return checksum;
}
02
异或校验
uint8_t CheckXOR(uint8_t *Buf, uint8_t Len)
{
uint8_t i = 0;
uint8_t x = 0;
for(i=0; i
{
x = x^(*(Buf+i));
}
return x;
}
03
CRC校验
uint8_t CRCTAB_H[256] = {/*表省略*/};
uint8_t CRCTAB_L[256] = {/*表省略*/};
void CRC16(uint8_t *pData, uint8_t Len, uint8_t *CRC_H, uint8_t *CRC_L)
{
uint8_t i;
uint8_t index;
uint8_t crc_h = 0xFF;
uint8_t crc_l = 0xFF;
for(i=0; i
{
index = crc_h^*(pData + i);
crc_h = crc_l^CRCTAB_H[index];
crc_l = CRCTAB_L[index];
}
*CRC_H = crc_h;
*CRC_L = crc_l;
}
04
MD5算法
关注微信公众号『玩转嵌入式』,后台回复“128”获取干货资料汇总,回复“256”加入技术交流群。
精彩技术文章推荐
01 |单片机的Bootloader,可以实现用户轻松升级程序 |
02 |模块化编程,是团队协作编程的前提 |
03 |PWM是什么,有哪些用处? |
04 |零基础如何学习单片机,一位入门者的进阶路径,可参考 |
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!