码迷,mamicode.com
首页 > 其他好文 > 详细

CRC32加密函数

时间:2020-05-01 14:15:52      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:amp   div   col   typedef   crc   signed   oid   i++   enc   

typedef unsigned int uint;
uint POLYNOMIAL = 0xEDB88320;
int have_table = 0;
uint table[256];

void make_table()
{
    int i, j, crc;
    have_table = 1;
    for (i = 0; i < 256; i++)
        for (j = 0, table[i] = i; j < 8; j++)
            table[i] = (table[i] >> 1) ^ ((table[i] & 1) ? POLYNOMIAL : 0);
}

uint crc32(uint crc,char *buff, int len)
{
    if (!have_table) make_table();
    crc = crc ^ ~0U;
    for (int i = 0; i < len; i++)
        crc = (crc >> 8) ^ table[(crc ^ buff[i]) & 0xFF];
    return ~crc;
}
    //CRC32加密
    uint encoded_crc32 = crc32(0, encoded_md5, 16);
    printf("crc32 : %08X",encoded_crc32 );

 

CRC32加密函数

标签:amp   div   col   typedef   crc   signed   oid   i++   enc   

原文地址:https://www.cnblogs.com/ndyxb/p/12813336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!