适合单片机的MD5源码
/*
* MD5.h
*
* Created on: 2013-1-29
* Author: HouJ
*/
#ifndef MD5_H_
#define MD5_H_
extern void md5_md5(const unsigned char* data, int len,unsigned char * md5Out);
#endif /* MD5_H_ */
#include <string.h>
#include "MD5.h"
//这个适合单片机
typedef unsigned char BYTE;
typedef unsigned long UINT;
typedef UINT MD5_SUB_ARRAY[16];
typedef UINT MD5_TRANSORM_FUNC(UINT, UINT, UINT);
typedef struct {
UINT abcd[4];
MD5_SUB_ARRAY sub_array;
} MD5_TRANSFORM_PARAM;
const static UINT MD5_TRANSFORM_MATRIX[4][16][3] = { { { 0, 7, 1 }, { 1, 12, 2 }, { 2, 17, 3 }, { 3, 22, 4 }, { 4, 7, 5 }, { 5, 12, 6 }, { 6, 17, 7 }, { 7, 22, 8 }, { 8, 7, 9 }, { 9, 12, 10 }, { 10, 17, 11 }, { 11, 22, 12 }, { 12, 7, 13 }, { 13, 12, 14 }, { 14, 17, 15 }, { 15, 22, 16 }, },
{ { 1, 5, 17 }, { 6, 9, 18 }, { 11, 14, 19 }, { 0, 20, 20 }, { 5, 5, 21 }, { 10, 9, 22 }, { 15, 14<