草庐IT

Checksum

全部标签

c++ - 如何生成包含可通过脚本轻松修改的数据的 exe

我希望生成一个包含两个文件的WindowsEXE(尽管我最终需要支持Mac/Linux),一个配置文件和一个MSI。我会让exe启动MSI,然后将配置文件复制到位。我不太确定如何执行此操作,但我不太担心。但是,我的要求之一是配置文件必须可以使用在Linux服务器上运行的脚本(Ruby)进行修改,因为我需要在下载EXE时更改一些数据。我已经研究了几种实现方法,例如使用xd生成我包含在我的项目中的字节流,但这似乎是一个糟糕的解决方案。也许不是,那是正确的解决方案,但我想确定。有这样做的“正确”方法吗?是否可以简单地将数据附加到可执行文件的末尾并使用C++查找它?我不是在这里寻找完整的解决方

c++ - 校验和计算——所有字节的补码和

我有关于创建这样描述的消息的校验和的说明:校验和由一个字节组成,等于从“消息类型”字开始到消息block结尾的所有字节的二进制补码和(不包括传输的校验和)。忽略最高有效位的进位。我找到的另一个描述是:校验和值包含数据消息中其他字(即消息类型、消息长度和数据字)的模256和的二进制补码。接收设备可以计算接收到的字的模256和,并将该和添加到接收到的校验和字中。结果为零通常表示消息已正确接收。我理解这意味着我将消息中所有字节的值相加(不包括校验和),得到这个数字的模256。得到这个数字的补码,这就是我的校验和。但是我在处理示例消息示例时遇到了问题(来自设计文档,因此我必须假设它已被正确编码

c++ - 为什么 C/C++ 按位异或运算符关心符号?

这个问题在这里已经有了答案:ImplicittypeconversionrulesinC++operators(9个回答)Howdopromotionrulesworkwhenthesignednessoneithersideofabinaryoperatordiffer?[duplicate](3个答案)关闭4年前。一段时间以来,我一直在努力处理一些低级别的消息传递,结果证明这是校验和计算的问题。我认为按位XOR运算符不关心符号,所以我使用QByteArray来存储字节,并使用at方法返回char,计算校验和。这些消息有时会得到适当的确认,但并非总是如此。看起来另一端的人正在使用ui

c++ - 这个校验和算法可以改进吗?

我们有一个非常古老的、不受支持的程序,它可以跨SMB共享复制文件。它有一个校验和算法来确定文件内容在复制之前是否已经改变。该算法似乎很容易被愚弄——我们刚刚发现了一个示例,其中两个文件相同,除了单个“1”更改为“2”之外,返回相同的校验和。这是算法:unsignedlongGetFileCheckSum(CStringPathFilename){FILE*File;unsignedlongCheckSum=0;unsignedlongData=0;unsignedlongCount=0;if((File=fopen(PathFilename,"rb"))!=NULL){while(fr

c++ - CCITT CRC 16 位起始值 0xffff

我需要计算作为参数传递的数据的CCITT16位校验和值以及长度。如果我用测试数据“123456789”填充我的数组TempStr,使用长度不包括空终止字符的多项式0x8408,我得到结果字符串6E90(十六进制)。连同空终止字符,我得到907A。当我将多项式换成0x1201时,我得到结果29E2(Hex)和EFE8(Hex),有和没有终止字符。我的问题是:我是否需要计算带有或不带有空终止字符的CRC以获得正确的值?我在算法中使用多项式0x1201还是反向多项式0x8408?给定数据0x29B1的正确CRC校验是否正确?我需要正确的值来确定该功能是否正常工作..计算此特定CRC类型的算法

php - 获取多维数组校验和的最简洁方法是什么?

我正在对某些查询进行一些sql缓存。我正在使用CakePHP,因此查询条件在一个数组中:array(0=>array(0=>'Tutorial.idIN(SELECTtutorial_idFROMclassificationsWHEREclassifications.product_id=1)',),1=>array('Tutorial.status_id'=>array(0=>4,1=>7,),),'OR'=>array('Tutorial.user_id'=>'40',),);我主要是在寻找product_id,但还有其他一些可能的情况,所以我想将数组缩减为校验和并将其附加到缓存文

php - 生成 Luhn 校验和

验证Luhn校验和的实现有很多,但生成校验和的实现却很少。我遇到过thisone然而,在我的测试中,它被发现有问题,我不明白delta变量背后的逻辑。我已经制作了这个应该生成Luhn校验和的函数,但出于某种原因,我还没有理解生成的校验和有一半时间是无效的。functionLuhn($number,$iterations=1){while($iterations-->=1){$stack=0;$parity=strlen($number)%2;$number=str_split($number,1);foreach($numberas$key=>$value){if($key%2==$p

以太网Checksum-UDP手算教学

tcp/ip的checksum计算步骤及方法请见如下链接:以太网Checksum-TCP/IP手算拆解教学-CSDN博客1、UDP数据结构如图在计算UDP首部校验和时,计算范围包括了伪首部、UDP首部、UDP数据报,其中各个部分数据容量如下:伪首部—---------12字节=48字符其中源IP地址---------4字节=16字符目的IP地址----—4字节=16字符协议-----------—1+1字节=4+4字符=8字符UDP长度---------2字节=8字符UDP首部---------8字节=32字符UDP数据报的长度取决于底层协议的限制长度=底层限制长度总字节-IP首部字节-UDP

android - 如何处理 .tar.md5 文件

我想知道如何创建/提取/验证.tar.md5文件。这些文件在将图像闪烁到Android设备时使用,请参阅here例如。据我所知,校验和是这样附加到文件中的:cpfile.tarfile.tar.md5md5sumfile.tar>>file.tar.md5首先我想知道如何提取文件。我可以简单地在file.tar.md5上使用tar-xf吗?如何验证文件的完整性?我想从文件中删除最后一个字节(包含校验和)以取回原始文件。我想您必须使用正则表达式来匹配checksumfile.tar?类似这样的东西已经在某处实现了吗? 最佳答案 首先t

《TCP/IP详解 卷一:协议》第5章的IPv4数据报的Checksum(校验和)字段的计算(这里才能解开你的困惑)

首先,我当你看过书,但是比较懵。1,实例说明Checksum(校验和)的计算步骤直奔主题,分析一下这个Checksum(校验和)怎么算出来的。先用Wireshark随便抓一个UDP或TCP包分析一下。如上面,我们得到IP帧头部实际数据(十六进制):45000034fd34400080117946c0a8636431072f2a我们看到Wireshark分析出来的HeaderChecksum是0x7946,下面我们计算验证一下。Step1:根据IPv4头部格式,我们知道第11和12个字节是要填写的Checksum,先把这两个字节都设置为0,得到45000034fd34400080110000c0