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;
}
任何援助将大为赞赏,
萨姆
谁正在请求的8位CRC必须需要特定 8位CRC。在担心语言之前,先做一步,确保你知道如何计算正确的CRC。文档是否提供CRC参数,如多项式,位排序,初始值,最终xor?文档是否提供了示例消息和相应的CRC?
尽管我可以联系协议的开发者并且询问他们,但它并没有特别说明,在这个例子中,我猜测“字节多义”这一行是多项式(我没有完全掌握什么多项式是btw:s)不确定线“字节crc”是什么?也许初始值?可悲的是,没有“工作示例”,因为它是...感谢您的帮助到目前为止,我会联系开发人员(他们不是特别精通我的代码,我觉得...没有冒犯他们! –
@SamYoué - 向开发人员询问字符串“HELLO”的正确CRC是什么。推导算法的多项式和其他参数就足够了。 –
会不会谢谢你,我会尽快回复你们 –
https://www.lua.org/pil/contents.html – Fildor
你知道你的多项式吗?你有没有正确CRC值的数据例子?什么是'3F 12 34 22 22 09'的正确CRC? –
这不是代码翻译服务。要么学习Lua要么付钱给谁。 – Piglet