在进行CRC校验时,首先要知道自己使用的CRC参数模型,不同的CRC参数模型其多项式,初始值和结果异或值不同。
可以在网站http://www.ip33.com/crc.html进行查询
public Crc16() : base(0x8005, 0xFFFF, 0x0000, true, true)
{
}
使用Nuget下载CrcDotNET库,并根据范例写程序即可
using Crc;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class Crc16 : Crc16Base
{
public Crc16() : base(0x8005, 0xFFFF, 0x0000, true, true)
{
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
try
{
Crc16 crc = new Crc16();
byte[] bytes = Encoding.ASCII.GetBytes(textBox3 .Text );
byte[] resultBytes = crc.ComputeHash(bytes);
UInt16 resultNum = BitConverter.ToUInt16(resultBytes, 0);
textBox2.Text = string .Format ("{0:X}",resultNum );
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}