數(shù)據(jù)安全很重要,如何保證數(shù)據(jù)的有效性?嵌入式常用的校驗算法介紹
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算法
關(guān)注微信公眾號『玩轉(zhuǎn)嵌入式』,后臺回復(fù)“128”獲取干貨資料匯總,回復(fù)“256”加入技術(shù)交流群。
精彩技術(shù)文章推薦
01 |單片機的Bootloader,可以實現(xiàn)用戶輕松升級程序 |
02 |模塊化編程,是團隊協(xié)作編程的前提 |
03 |PWM是什么,有哪些用處? |
04 |零基礎(chǔ)如何學習單片機,一位入門者的進階路徑,可參考 |
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!