C#CRC8位LUA功能

C#CRC8位LUA功能

问题描述:

嗨香港专业教育学院在网上搜索,并在这里,并认为唯一的解决办法是问某人既熟悉LUA和C#...C#CRC8位LUA功能

我有一个CRC的8位代码片段基本上我需要Lua ... 即时通讯新的Lua,但已设法编写一些代码来解决问题,但有一个新版本,需要对每条消息的8位CRC校验...

我不得不谷歌什么CRC检查是如何完成的,我认为我已经理解了这个概念......我完全无法知道如何在Lua中编写脚本......我找到了一段c#代码,它说这是一个简单的通用8位crc计算,我想如果这是在我可以适应它,但似乎没有直接转换设施在网络上的任何地方...

我注意到你们之前曾帮助过类似的问题,并希望你现在可以帮助我......我必须签署一份保密协议来阅读它,因此不会发布代码,并且对细节略微保密......但是如果我发布这个非特定的通用8位CRC计算例程,也许有人可以为我转换它或在Lua中编写类似的脚本?为了我的目的,我只需要“解码”一个十六进制字节的字符串(很确定我刚刚做了这个!),并告诉接收方CRC校验的结果应该是什么...

所以我有一个字符串像十六进制的: 3F 12 34 22 22 09(完全由和无意义例如)

,我需要一个8 BI CRC校验结果添加到 下面是一般的8位校验(希望有意义!) C#code我找到了:

private byte calcCRC8(ref byte[] data, int bytes) 
{ 
    byte crc = 0xff; 
    byte poly = 0x85; 
    int i, j; 

    for (i = 0; i < bytes; i++) 
    { 
     crc ^= data[i]; 
     for (j = 0; j < 8; j++) 
     { 
      if ((crc & 0x80) == 0x80) 
      { 
       crc = (byte)((crc << 1)^poly); 
      } 
      else 
      { 
       crc = (byte)(crc << 1); 
      } 
     }    
    } 
    return crc; 
} 

任何援助将大为赞赏,

萨姆

+0

https://www.lua.org/pil/contents.html – Fildor

+1

你知道你的多项式吗?你有没有正确CRC值的数据例子?什么是'3F 12 34 22 22 09'的正确CRC? –

+0

这不是代码翻译服务。要么学习Lua要么付钱给谁。 – Piglet

谁正在请求的8位CRC必须需要特定 8位CRC。在担心语言之前,先做一步,确保你知道如何计算正确的CRC。文档是否提供CRC参数,如多项式,位排序,初始值,最终xor?文档是否提供了示例消息和相应的CRC?

+0

尽管我可以联系协议的开发者并且询问他们,但它并没有特别说明,在这个例子中,我猜测“字节多义”这一行是多项式(我没有完全掌握什么多项式是btw:s)不确定线“字节crc”是什么?也许初始值?可悲的是,没有“工作示例”,因为它是...感谢您的帮助到目前为止,我会联系开发人员(他们不是特别精通我的代码,我觉得...没有冒犯他们! –

+0

@SamYoué - 向开发人员询问字符串“HELLO”的正确CRC是什么。推导算法的多项式和其他参数就足够了。 –

+0

会不会谢谢你,我会尽快回复你们 –