C++计算文件MD5值 下载本文

内容发布更新时间 : 2024/12/28 8:59:12星期一 下面是文章的全部内容请认真阅读。

MD5ChecksumDefines.h

1. //Magic initialization constants 2. #define MD5_INIT_STATE_0 0x67452301 3. #define MD5_INIT_STATE_1 0xefcdab89 4. #define MD5_INIT_STATE_2 0x98badcfe 5. #define MD5_INIT_STATE_3 0x10325476 6.

7. //Constants for Transform routine. 8. #define MD5_S11 7 9. #define MD5_S12 12 10. #define MD5_S13 17 11. #define MD5_S14 22 12. #define MD5_S21 5 13. #define MD5_S22 9 14. #define MD5_S23 14 15. #define MD5_S24 20 16. #define MD5_S31 4 17. #define MD5_S32 11 18. #define MD5_S33 16 19. #define MD5_S34 23 20. #define MD5_S41 6 21. #define MD5_S42 10 22. #define MD5_S43 15 23. #define MD5_S44 21 24.

25. //Transformation Constants - Round 1

26. #define MD5_T01 0xd76aa478 //Transformation Constant 1 27. #define MD5_T02 0xe8c7b756 //Transformation Constant 2 28. #define MD5_T03 0x242070db //Transformation Constant 3 29. #define MD5_T04 0xc1bdceee //Transformation Constant 4 30. #define MD5_T05 0xf57c0faf //Transformation Constant 5 31. #define MD5_T06 0x4787c62a //Transformation Constant 6 32. #define MD5_T07 0xa8304613 //Transformation Constant 7 33. #define MD5_T08 0xfd469501 //Transformation Constant 8 34. #define MD5_T09 0x698098d8 //Transformation Constant 9 35. #define MD5_T10 0x8b44f7af //Transformation Constant 10 36. #define MD5_T11 0xffff5bb1 //Transformation Constant 11 37. #define MD5_T12 0x895cd7be //Transformation Constant 12 38. #define MD5_T13 0x6b901122 //Transformation Constant 13 39. #define MD5_T14 0xfd987193 //Transformation Constant 14 40. #define MD5_T15 0xa679438e //Transformation Constant 15 41. #define MD5_T16 0x49b40821 //Transformation Constant 16 42.

43. //Transformation Constants - Round 2

44. #define MD5_T17 0xf61e2562 //Transformation Constant 17 45. #define MD5_T18 0xc040b340 //Transformation Constant 18 46. #define MD5_T19 0x265e5a51 //Transformation Constant 19 47. #define MD5_T20 0xe9b6c7aa //Transformation Constant 20 48. #define MD5_T21 0xd62f105d //Transformation Constant 21 49. #define MD5_T22 0x02441453 //Transformation Constant 22 50. #define MD5_T23 0xd8a1e681 //Transformation Constant 23 51. #define MD5_T24 0xe7d3fbc8 //Transformation Constant 24 52. #define MD5_T25 0x21e1cde6 //Transformation Constant 25 53. #define MD5_T26 0xc33707d6 //Transformation Constant 26 54. #define MD5_T27 0xf4d50d87 //Transformation Constant 27 55. #define MD5_T28 0x455a14ed //Transformation Constant 28 56. #define MD5_T29 0xa9e3e905 //Transformation Constant 29 57. #define MD5_T30 0xfcefa3f8 //Transformation Constant 30 58. #define MD5_T31 0x676f02d9 //Transformation Constant 31 59. #define MD5_T32 0x8d2a4c8a //Transformation Constant 32 60.

61. //Transformation Constants - Round 3

62. #define MD5_T33 0xfffa3942 //Transformation Constant 33 63. #define MD5_T34 0x8771f681 //Transformation Constant 34 64. #define MD5_T35 0x6d9d6122 //Transformation Constant 35 65. #define MD5_T36 0xfde5380c //Transformation Constant 36 66. #define MD5_T37 0xa4beea44 //Transformation Constant 37 67. #define MD5_T38 0x4bdecfa9 //Transformation Constant 38 68. #define MD5_T39 0xf6bb4b60 //Transformation Constant 39 69. #define MD5_T40 0xbebfbc70 //Transformation Constant 40 70. #define MD5_T41 0x289b7ec6 //Transformation Constant 41 71. #define MD5_T42 0xeaa127fa //Transformation Constant 42 72. #define MD5_T43 0xd4ef3085 //Transformation Constant 43 73. #define MD5_T44 0x04881d05 //Transformation Constant 44 74. #define MD5_T45 0xd9d4d039 //Transformation Constant 45 75. #define MD5_T46 0xe6db99e5 //Transformation Constant 46 76. #define MD5_T47 0x1fa27cf8 //Transformation Constant 47 77. #define MD5_T48 0xc4ac5665 //Transformation Constant 48 78.

79. //Transformation Constants - Round 4

80. #define MD5_T49 0xf4292244 //Transformation Constant 49 81. #define MD5_T50 0x432aff97 //Transformation Constant 50 82. #define MD5_T51 0xab9423a7 //Transformation Constant 51 83. #define MD5_T52 0xfc93a039 //Transformation Constant 52 84. #define MD5_T53 0x655b59c3 //Transformation Constant 53 85. #define MD5_T54 0x8f0ccc92 //Transformation Constant 54 86. #define MD5_T55 0xffeff47d //Transformation Constant 55 87. #define MD5_T56 0x85845dd1 //Transformation Constant 56

88. #define MD5_T57 0x6fa87e4f //Transformation Constant 57 89. #define MD5_T58 0xfe2ce6e0 //Transformation Constant 58 90. #define MD5_T59 0xa3014314 //Transformation Constant 59 91. #define MD5_T60 0x4e0811a1 //Transformation Constant 60 92. #define MD5_T61 0xf7537e82 //Transformation Constant 61 93. #define MD5_T62 0xbd3af235 //Transformation Constant 62 94. #define MD5_T63 0x2ad7d2bb //Transformation Constant 63 95. #define MD5_T64 0xeb86d391 //Transformation Constant 64 96. 97.

98. //Null data (except for first BYTE) used to finalise the checksum calculatio

n

99. static unsigned char PADDING[64] = {

100. 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 103. };

CMD5Checksum.h

[cpp] view plain copy

1. #if !defined(AFX_MD5CHECKSUM_H__2BC7928E_4C15_11D3_B2EE_A4A60E20D2C3__INCLUD

ED_)

2. #define AFX_MD5CHECKSUM_H__2BC7928E_4C15_11D3_B2EE_A4A60E20D2C3__INCLUDED_ 3.

4. #if _MSC_VER > 1000 5. #pragma once

6. #endif // _MSC_VER > 1000

7. /***************************************************************************

************** 8. 9.

10. ****************************************************************************

*************/ 11. class CMD5Checksum 12. { 13. public:

14. static CString GetMD5OfString(CString strString); 15. //interface functions for the RSA MD5 calculation 16. static CString GetMD5(const CString& strFilePath); 17.

18. protected:

19. //constructor/destructor 20. CMD5Checksum();

21. virtual ~CMD5Checksum() {};