Dim CRC32Table(256) ' Test suite answers 'CRC32(123456789) = CBF43926 'CRC32(hello world)=D4A1185 'CRC32(Hello world)=8BD69E52 'CRC32(a) = E8B7BE43 'CRC32( ) = E96CCF45 Print DecHex$(CRC32("123456789")) Print DecHex$(CRC32("hello world")) Print DecHex$(CRC32("Hello world")) Print DecHex$(CRC32("a")) Print DecHex$(CRC32(" ")) Function CRC32(Msg$) IF (CRC32Table(1) = 0) THEN Call CRC32Setup END IF lCRC = HexDec("&HFFFFFFFF") For a = 1 To Len(Msg$) bChar = Asc(Mid$(Msg$, a, 1)) bTemp = (lCRC And HexDec("&HFF")) Xor bChar lCRC = (Int(lCRC / 256) Xor CRC32Table(bTemp)) Next CRC32 = (lCRC Xor HexDec("&HFFFFFFFF")) End Function Sub CRC32Setup CRC32Table(0) = HexDec("&H0") CRC32Table(1) = HexDec("&H77073096") CRC32Table(2) = HexDec("&HEE0E612C") CRC32Table(3) = HexDec("&H990951BA") CRC32Table(4) = HexDec("&H76DC419") CRC32Table(5) = HexDec("&H706AF48F") CRC32Table(6) = HexDec("&HE963A535") CRC32Table(7) = HexDec("&H9E6495A3") CRC32Table(8) = HexDec("&HEDB8832") CRC32Table(9) = HexDec("&H79DCB8A4") CRC32Table(10) = HexDec("&HE0D5E91E") CRC32Table(11) = HexDec("&H97D2D988") CRC32Table(12) = HexDec("&H9B64C2B") CRC32Table(13) = HexDec("&H7EB17CBD") CRC32Table(14) = HexDec("&HE7B82D07") CRC32Table(15) = HexDec("&H90BF1D91") CRC32Table(16) = HexDec("&H1DB71064") CRC32Table(17) = HexDec("&H6AB020F2") CRC32Table(18) = HexDec("&HF3B97148") CRC32Table(19) = HexDec("&H84BE41DE") CRC32Table(20) = HexDec("&H1ADAD47D") CRC32Table(21) = HexDec("&H6DDDE4EB") CRC32Table(22) = HexDec("&HF4D4B551") CRC32Table(23) = HexDec("&H83D385C7") CRC32Table(24) = HexDec("&H136C9856") CRC32Table(25) = HexDec("&H646BA8C0") CRC32Table(26) = HexDec("&HFD62F97A") CRC32Table(27) = HexDec("&H8A65C9EC") CRC32Table(28) = HexDec("&H14015C4F") CRC32Table(29) = HexDec("&H63066CD9") CRC32Table(30) = HexDec("&HFA0F3D63") CRC32Table(31) = HexDec("&H8D080DF5") CRC32Table(32) = HexDec("&H3B6E20C8") CRC32Table(33) = HexDec("&H4C69105E") CRC32Table(34) = HexDec("&HD56041E4") CRC32Table(35) = HexDec("&HA2677172") CRC32Table(36) = HexDec("&H3C03E4D1") CRC32Table(37) = HexDec("&H4B04D447") CRC32Table(38) = HexDec("&HD20D85FD") CRC32Table(39) = HexDec("&HA50AB56B") CRC32Table(40) = HexDec("&H35B5A8FA") CRC32Table(41) = HexDec("&H42B2986C") CRC32Table(42) = HexDec("&HDBBBC9D6") CRC32Table(43) = HexDec("&HACBCF940") CRC32Table(44) = HexDec("&H32D86CE3") CRC32Table(45) = HexDec("&H45DF5C75") CRC32Table(46) = HexDec("&HDCD60DCF") CRC32Table(47) = HexDec("&HABD13D59") CRC32Table(48) = HexDec("&H26D930AC") CRC32Table(49) = HexDec("&H51DE003A") CRC32Table(50) = HexDec("&HC8D75180") CRC32Table(51) = HexDec("&HBFD06116") CRC32Table(52) = HexDec("&H21B4F4B5") CRC32Table(53) = HexDec("&H56B3C423") CRC32Table(54) = HexDec("&HCFBA9599") CRC32Table(55) = HexDec("&HB8BDA50F") CRC32Table(56) = HexDec("&H2802B89E") CRC32Table(57) = HexDec("&H5F058808") CRC32Table(58) = HexDec("&HC60CD9B2") CRC32Table(59) = HexDec("&HB10BE924") CRC32Table(60) = HexDec("&H2F6F7C87") CRC32Table(61) = HexDec("&H58684C11") CRC32Table(62) = HexDec("&HC1611DAB") CRC32Table(63) = HexDec("&HB6662D3D") CRC32Table(64) = HexDec("&H76DC4190") CRC32Table(65) = HexDec("&H1DB7106") CRC32Table(66) = HexDec("&H98D220BC") CRC32Table(67) = HexDec("&HEFD5102A") CRC32Table(68) = HexDec("&H71B18589") CRC32Table(69) = HexDec("&H6B6B51F") CRC32Table(70) = HexDec("&H9FBFE4A5") CRC32Table(71) = HexDec("&HE8B8D433") CRC32Table(72) = HexDec("&H7807C9A2") CRC32Table(73) = HexDec("&HF00F934") CRC32Table(74) = HexDec("&H9609A88E") CRC32Table(75) = HexDec("&HE10E9818") CRC32Table(76) = HexDec("&H7F6A0DBB") CRC32Table(77) = HexDec("&H86D3D2D") CRC32Table(78) = HexDec("&H91646C97") CRC32Table(79) = HexDec("&HE6635C01") CRC32Table(80) = HexDec("&H6B6B51F4") CRC32Table(81) = HexDec("&H1C6C6162") CRC32Table(82) = HexDec("&H856530D8") CRC32Table(83) = HexDec("&HF262004E") CRC32Table(84) = HexDec("&H6C0695ED") CRC32Table(85) = HexDec("&H1B01A57B") CRC32Table(86) = HexDec("&H8208F4C1") CRC32Table(87) = HexDec("&HF50FC457") CRC32Table(88) = HexDec("&H65B0D9C6") CRC32Table(89) = HexDec("&H12B7E950") CRC32Table(90) = HexDec("&H8BBEB8EA") CRC32Table(91) = HexDec("&HFCB9887C") CRC32Table(92) = HexDec("&H62DD1DDF") CRC32Table(93) = HexDec("&H15DA2D49") CRC32Table(94) = HexDec("&H8CD37CF3") CRC32Table(95) = HexDec("&HFBD44C65") CRC32Table(96) = HexDec("&H4DB26158") CRC32Table(97) = HexDec("&H3AB551CE") CRC32Table(98) = HexDec("&HA3BC0074") CRC32Table(99) = HexDec("&HD4BB30E2") CRC32Table(100) = HexDec("&H4ADFA541") CRC32Table(101) = HexDec("&H3DD895D7") CRC32Table(102) = HexDec("&HA4D1C46D") CRC32Table(103) = HexDec("&HD3D6F4FB") CRC32Table(104) = HexDec("&H4369E96A") CRC32Table(105) = HexDec("&H346ED9FC") CRC32Table(106) = HexDec("&HAD678846") CRC32Table(107) = HexDec("&HDA60B8D0") CRC32Table(108) = HexDec("&H44042D73") CRC32Table(109) = HexDec("&H33031DE5") CRC32Table(110) = HexDec("&HAA0A4C5F") CRC32Table(111) = HexDec("&HDD0D7CC9") CRC32Table(112) = HexDec("&H5005713C") CRC32Table(113) = HexDec("&H270241AA") CRC32Table(114) = HexDec("&HBE0B1010") CRC32Table(115) = HexDec("&HC90C2086") CRC32Table(116) = HexDec("&H5768B525") CRC32Table(117) = HexDec("&H206F85B3") CRC32Table(118) = HexDec("&HB966D409") CRC32Table(119) = HexDec("&HCE61E49F") CRC32Table(120) = HexDec("&H5EDEF90E") CRC32Table(121) = HexDec("&H29D9C998") CRC32Table(122) = HexDec("&HB0D09822") CRC32Table(123) = HexDec("&HC7D7A8B4") CRC32Table(124) = HexDec("&H59B33D17") CRC32Table(125) = HexDec("&H2EB40D81") CRC32Table(126) = HexDec("&HB7BD5C3B") CRC32Table(127) = HexDec("&HC0BA6CAD") CRC32Table(128) = HexDec("&HEDB88320") CRC32Table(129) = HexDec("&H9ABFB3B6") CRC32Table(130) = HexDec("&H3B6E20C") CRC32Table(131) = HexDec("&H74B1D29A") CRC32Table(132) = HexDec("&HEAD54739") CRC32Table(133) = HexDec("&H9DD277AF") CRC32Table(134) = HexDec("&H4DB2615") CRC32Table(135) = HexDec("&H73DC1683") CRC32Table(136) = HexDec("&HE3630B12") CRC32Table(137) = HexDec("&H94643B84") CRC32Table(138) = HexDec("&HD6D6A3E") CRC32Table(139) = HexDec("&H7A6A5AA8") CRC32Table(140) = HexDec("&HE40ECF0B") CRC32Table(141) = HexDec("&H9309FF9D") CRC32Table(142) = HexDec("&HA00AE27") CRC32Table(143) = HexDec("&H7D079EB1") CRC32Table(144) = HexDec("&HF00F9344") CRC32Table(145) = HexDec("&H8708A3D2") CRC32Table(146) = HexDec("&H1E01F268") CRC32Table(147) = HexDec("&H6906C2FE") CRC32Table(148) = HexDec("&HF762575D") CRC32Table(149) = HexDec("&H806567CB") CRC32Table(150) = HexDec("&H196C3671") CRC32Table(151) = HexDec("&H6E6B06E7") CRC32Table(152) = HexDec("&HFED41B76") CRC32Table(153) = HexDec("&H89D32BE0") CRC32Table(154) = HexDec("&H10DA7A5A") CRC32Table(155) = HexDec("&H67DD4ACC") CRC32Table(156) = HexDec("&HF9B9DF6F") CRC32Table(157) = HexDec("&H8EBEEFF9") CRC32Table(158) = HexDec("&H17B7BE43") CRC32Table(159) = HexDec("&H60B08ED5") CRC32Table(160) = HexDec("&HD6D6A3E8") CRC32Table(161) = HexDec("&HA1D1937E") CRC32Table(162) = HexDec("&H38D8C2C4") CRC32Table(163) = HexDec("&H4FDFF252") CRC32Table(164) = HexDec("&HD1BB67F1") CRC32Table(165) = HexDec("&HA6BC5767") CRC32Table(166) = HexDec("&H3FB506DD") CRC32Table(167) = HexDec("&H48B2364B") CRC32Table(168) = HexDec("&HD80D2BDA") CRC32Table(169) = HexDec("&HAF0A1B4C") CRC32Table(170) = HexDec("&H36034AF6") CRC32Table(171) = HexDec("&H41047A60") CRC32Table(172) = HexDec("&HDF60EFC3") CRC32Table(173) = HexDec("&HA867DF55") CRC32Table(174) = HexDec("&H316E8EEF") CRC32Table(175) = HexDec("&H4669BE79") CRC32Table(176) = HexDec("&HCB61B38C") CRC32Table(177) = HexDec("&HBC66831A") CRC32Table(178) = HexDec("&H256FD2A0") CRC32Table(179) = HexDec("&H5268E236") CRC32Table(180) = HexDec("&HCC0C7795") CRC32Table(181) = HexDec("&HBB0B4703") CRC32Table(182) = HexDec("&H220216B9") CRC32Table(183) = HexDec("&H5505262F") CRC32Table(184) = HexDec("&HC5BA3BBE") CRC32Table(185) = HexDec("&HB2BD0B28") CRC32Table(186) = HexDec("&H2BB45A92") CRC32Table(187) = HexDec("&H5CB36A04") CRC32Table(188) = HexDec("&HC2D7FFA7") CRC32Table(189) = HexDec("&HB5D0CF31") CRC32Table(190) = HexDec("&H2CD99E8B") CRC32Table(191) = HexDec("&H5BDEAE1D") CRC32Table(192) = HexDec("&H9B64C2B0") CRC32Table(193) = HexDec("&HEC63F226") CRC32Table(194) = HexDec("&H756AA39C") CRC32Table(195) = HexDec("&H26D930A") CRC32Table(196) = HexDec("&H9C0906A9") CRC32Table(197) = HexDec("&HEB0E363F") CRC32Table(198) = HexDec("&H72076785") CRC32Table(199) = HexDec("&H5005713") CRC32Table(200) = HexDec("&H95BF4A82") CRC32Table(201) = HexDec("&HE2B87A14") CRC32Table(202) = HexDec("&H7BB12BAE") CRC32Table(203) = HexDec("&HCB61B38") CRC32Table(204) = HexDec("&H92D28E9B") CRC32Table(205) = HexDec("&HE5D5BE0D") CRC32Table(206) = HexDec("&H7CDCEFB7") CRC32Table(207) = HexDec("&HBDBDF21") CRC32Table(208) = HexDec("&H86D3D2D4") CRC32Table(209) = HexDec("&HF1D4E242") CRC32Table(210) = HexDec("&H68DDB3F8") CRC32Table(211) = HexDec("&H1FDA836E") CRC32Table(212) = HexDec("&H81BE16CD") CRC32Table(213) = HexDec("&HF6B9265B") CRC32Table(214) = HexDec("&H6FB077E1") CRC32Table(215) = HexDec("&H18B74777") CRC32Table(216) = HexDec("&H88085AE6") CRC32Table(217) = HexDec("&HFF0F6A70") CRC32Table(218) = HexDec("&H66063BCA") CRC32Table(219) = HexDec("&H11010B5C") CRC32Table(220) = HexDec("&H8F659EFF") CRC32Table(221) = HexDec("&HF862AE69") CRC32Table(222) = HexDec("&H616BFFD3") CRC32Table(223) = HexDec("&H166CCF45") CRC32Table(224) = HexDec("&HA00AE278") CRC32Table(225) = HexDec("&HD70DD2EE") CRC32Table(226) = HexDec("&H4E048354") CRC32Table(227) = HexDec("&H3903B3C2") CRC32Table(228) = HexDec("&HA7672661") CRC32Table(229) = HexDec("&HD06016F7") CRC32Table(230) = HexDec("&H4969474D") CRC32Table(231) = HexDec("&H3E6E77DB") CRC32Table(232) = HexDec("&HAED16A4A") CRC32Table(233) = HexDec("&HD9D65ADC") CRC32Table(234) = HexDec("&H40DF0B66") CRC32Table(235) = HexDec("&H37D83BF0") CRC32Table(236) = HexDec("&HA9BCAE53") CRC32Table(237) = HexDec("&HDEBB9EC5") CRC32Table(238) = HexDec("&H47B2CF7F") CRC32Table(239) = HexDec("&H30B5FFE9") CRC32Table(240) = HexDec("&HBDBDF21C") CRC32Table(241) = HexDec("&HCABAC28A") CRC32Table(242) = HexDec("&H53B39330") CRC32Table(243) = HexDec("&H24B4A3A6") CRC32Table(244) = HexDec("&HBAD03605") CRC32Table(245) = HexDec("&HCDD70693") CRC32Table(246) = HexDec("&H54DE5729") CRC32Table(247) = HexDec("&H23D967BF") CRC32Table(248) = HexDec("&HB3667A2E") CRC32Table(249) = HexDec("&HC4614AB8") CRC32Table(250) = HexDec("&H5D681B02") CRC32Table(251) = HexDec("&H2A6F2B94") CRC32Table(252) = HexDec("&HB40BBE37") CRC32Table(253) = HexDec("&HC30C8EA1") CRC32Table(254) = HexDec("&H5A05DF1B") CRC32Table(255) = HexDec("&H2D02EF8D") End Sub
An easy-to-use code sample for calculating the CRC-32 value of a string.