hi this is a crc32 class I made see the class comments for info.
comments suggestions welcome. Hope you find it usfull.

vbnet Code:
  1. Option Explicit On
  2.  
  3. 'I been making a few Registration Schemes over the last few weeks
  4. 'And thought of a new way to generate a 32crc from a string,
  5. 'Or even use it to validate serials for my programs anyway was reading some papers I had
  6.  
  7. 'from college on crc32 I found years ago that were in C++ and decided to try and convert it
  8. 'Anyway this is what I came up with I don’t know if this is 100% right though
  9. 'But it does seem to calc some strings I test and that really want.
  10. 'If you guys think it wrong or can fix it let me know.
  11.  
  12. Public Class crc32
  13.  
  14.     'Nise long look up table.
  15.     Private TLookup = {&H0, &H77073096, &HEE0E612C, &H990951BA, &H76DC419, &H706AF48F,
  16.     &HE963A535, &H9E6495A3, &HEDB8832, &H79DCB8A4, &HE0D5E91E, &H97D2D988,
  17.     &H9B64C2B, &H7EB17CBD, &HE7B82D07, &H90BF1D91, &H1DB71064, &H6AB020F2,
  18.     &HF3B97148, &H84BE41DE, &H1ADAD47D, &H6DDDE4EB, &HF4D4B551, &H83D385C7,
  19.     &H136C9856, &H646BA8C0, &HFD62F97A, &H8A65C9EC, &H14015C4F, &H63066CD9,
  20.     &HFA0F3D63, &H8D080DF5, &H3B6E20C8, &H4C69105E, &HD56041E4, &HA2677172,
  21.     &H3C03E4D1, &H4B04D447, &HD20D85FD, &HA50AB56B, &H35B5A8FA, &H42B2986C,
  22.     &HDBBBC9D6, &HACBCF940, &H32D86CE3, &H45DF5C75, &HDCD60DCF, &HABD13D59,
  23.     &H26D930AC, &H51DE003A, &HC8D75180, &HBFD06116, &H21B4F4B5, &H56B3C423,
  24.     &HCFBA9599, &HB8BDA50F, &H2802B89E, &H5F058808, &HC60CD9B2, &HB10BE924,
  25.     &H2F6F7C87, &H58684C11, &HC1611DAB, &HB6662D3D, &H76DC4190, &H1DB7106,
  26.     &H98D220BC, &HEFD5102A, &H71B18589, &H6B6B51F, &H9FBFE4A5, &HE8B8D433,
  27.     &H7807C9A2, &HF00F934, &H9609A88E, &HE10E9818, &H7F6A0DBB, &H86D3D2D,
  28.     &H91646C97, &HE6635C01, &H6B6B51F4, &H1C6C6162, &H856530D8, &HF262004E,
  29.     &H6C0695ED, &H1B01A57B, &H8208F4C1, &HF50FC457, &H65B0D9C6, &H12B7E950,
  30.     &H8BBEB8EA, &HFCB9887C, &H62DD1DDF, &H15DA2D49, &H8CD37CF3, &HFBD44C65,
  31.     &H4DB26158, &H3AB551CE, &HA3BC0074, &HD4BB30E2, &H4ADFA541, &H3DD895D7,
  32.     &HA4D1C46D, &HD3D6F4FB, &H4369E96A, &H346ED9FC, &HAD678846, &HDA60B8D0,
  33.     &H44042D73, &H33031DE5, &HAA0A4C5F, &HDD0D7CC9, &H5005713C, &H270241AA,
  34.     &HBE0B1010, &HC90C2086, &H5768B525, &H206F85B3, &HB966D409, &HCE61E49F,
  35.     &H5EDEF90E, &H29D9C998, &HB0D09822, &HC7D7A8B4, &H59B33D17, &H2EB40D81,
  36.     &HB7BD5C3B, &HC0BA6CAD, &HEDB88320, &H9ABFB3B6, &H3B6E20C, &H74B1D29A,
  37.     &HEAD54739, &H9DD277AF, &H4DB2615, &H73DC1683, &HE3630B12, &H94643B84,
  38.     &HD6D6A3E, &H7A6A5AA8, &HE40ECF0B, &H9309FF9D, &HA00AE27, &H7D079EB1,
  39.     &HF00F9344, &H8708A3D2, &H1E01F268, &H6906C2FE, &HF762575D, &H806567CB,
  40.     &H196C3671, &H6E6B06E7, &HFED41B76, &H89D32BE0, &H10DA7A5A, &H67DD4ACC,
  41.     &HF9B9DF6F, &H8EBEEFF9, &H17B7BE43, &H60B08ED5, &HD6D6A3E8, &HA1D1937E,
  42.     &H38D8C2C4, &H4FDFF252, &HD1BB67F1, &HA6BC5767, &H3FB506DD, &H48B2364B,
  43.     &HD80D2BDA, &HAF0A1B4C, &H36034AF6, &H41047A60, &HDF60EFC3, &HA867DF55,
  44.     &H316E8EEF, &H4669BE79, &HCB61B38C, &HBC66831A, &H256FD2A0, &H5268E236,
  45.     &HCC0C7795, &HBB0B4703, &H220216B9, &H5505262F, &HC5BA3BBE, &HB2BD0B28,
  46.     &H2BB45A92, &H5CB36A04, &HC2D7FFA7, &HB5D0CF31, &H2CD99E8B, &H5BDEAE1D,
  47.     &H9B64C2B0, &HEC63F226, &H756AA39C, &H26D930A, &H9C0906A9, &HEB0E363F,
  48.     &H72076785, &H5005713, &H95BF4A82, &HE2B87A14, &H7BB12BAE, &HCB61B38,
  49.     &H92D28E9B, &HE5D5BE0D, &H7CDCEFB7, &HBDBDF21, &H86D3D2D4, &HF1D4E242,
  50.     &H68DDB3F8, &H1FDA836E, &H81BE16CD, &HF6B9265B, &H6FB077E1, &H18B74777,
  51.     &H88085AE6, &HFF0F6A70, &H66063BCA, &H11010B5C, &H8F659EFF, &HF862AE69,
  52.     &H616BFFD3, &H166CCF45, &HA00AE278, &HD70DD2EE, &H4E048354, &H3903B3C2,
  53.     &HA7672661, &HD06016F7, &H4969474D, &H3E6E77DB, &HAED16A4A, &HD9D65ADC,
  54.     &H40DF0B66, &H37D83BF0, &HA9BCAE53, &HDEBB9EC5, &H47B2CF7F, &H30B5FFE9,
  55.     &HBDBDF21C, &HCABAC28A, &H53B39330, &H24B4A3A6, &HBAD03605, &HCDD70693,
  56.     &H54DE5729, &H23D967BF, &HB3667A2E, &HC4614AB8, &H5D681B02, &H2A6F2B94,
  57.     &HB40BBE37, &HC30C8EA1, &H5A05DF1B, &H2D02EF8D}
  58.  
  59.     Public Function Crc32CalcString(ByVal source As String) As String
  60.         Dim crc As Integer = &HFFFFFFFF
  61.         Dim x As Integer = 0
  62.         Dim c As Byte = 0
  63.  
  64.         'Loop though the string.
  65.         While x <= source.Length - 1
  66.             'Get byte from char
  67.             c = Asc(source(x))
  68.             'This is the magic stuff that get the crc value.
  69.             crc = (((crc And &HFFFFFF00) >> 8) And &HFFFFFF) Xor (TLookup((crc And 255) Xor c))
  70.             'INC Counter
  71.             x += 1
  72.         End While
  73.  
  74.         crc = (Not crc)
  75.         'Return hex value or crc value.
  76.         Return Hex(crc)
  77.     End Function
  78.  
  79. End Class

Example Code

Option Explicit On

vbnet Code:
  1. Public Class frmmain
  2.  
  3.     Private Sub cmdTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTest.Click
  4.         'Declare the class.
  5.         Dim BensCrc32 As New crc32()
  6.  
  7.         MessageBox.Show(BensCrc32.Crc32CalcString("This is a test"), "CRC-32-DEMO",
  8.                         MessageBoxButtons.OK, MessageBoxIcon.Information) 'Return C07A9F32
  9.     End Sub
  10.  
  11. End Class