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





