Thursday, January 14, 2010

C# Research - CRC16

I'm working on a decryption tool in C# for text that has been encrypted using Visual Foxpro 9.0's SYS(2007) function, which is used for generating CheckSum's. From my research, the use of "Checksum" in this case is not accurate, as it is actually a CRC 16, also known as a 16-bit Cyclical Redundancy Check (see http://fox.wikis.com/wc.dll?Wiki~CRC16)

I am using Ascii Encoding in C# to call a CRC 16 Checksum function that I found online (see http://www.sanity-free.org/134/standard_crc_16_in_csharp.html). I modified the code to return an Integer instead of a ushort. The result for one set of bytes is different than the results from running SYS(2007) in VFP with the same bytes.

The next step is to continue my online research for either someone who has achieved this effort or more breadcrumbs. One thing I am testing is using different Encoding, as I'm not certain ASCII is the proper choice here.

To be fair - I have done little with CRC or Checksum's, even in my VFP days, so this is very much a learning process that started last night.



No comments:

Post a Comment