当前位置: 首页 > 知识库问答 >
问题:

通过boost crc计算溢出文件的校验和

贡光明
2023-03-14
    std::ifstream  ifs( argv[i], std::ios_base::binary );

    if ( ifs )
    {
        do
        {
            char  buffer[BUFFER_SIZE];

            ifs.read( buffer, BUFFER_SIZE);
            result.process_bytes( buffer, HALF_FILE_SIZE );
        } while (HALF or END of FILE );
     }
    std::cout << result.checksum() << std::endl;

plz请参阅本页以查看Boost::CRC示例代码:http://www.boost.org/doc/libs/1_37_0/libs/crc/crc_example.cpp

共有1个答案

汪茂
2023-03-14

我不明白你在问什么。

首先,CRC不是校验和。校验和中的“和”表示数据被添加。CRC计算有限域上的多项式余数,该余数不是和。这很重要,因为你似乎在问关于合并CRC的问题。不能将两块的CRC相加以得到整个事物的CRC。

其次,获得多个块的CRC的方法是在这些块上计算单个CRC。这就是示例代码所做的。result包含一个单独的CRC,该CRC使用process_bytes运行的每个片段进行更新。

 类似资料:
  • 我正在使用iTextSharp从PDF文件中读取文本。然而,有些时候我不能提取文本,因为PDF文件只包含图像。我每天下载同样的PDF文件,我想看看PDF是否被修改过。如果无法获得文本和修改日期,那么MD5校验和是判断文件是否已更改的最可靠方法吗? 如果是的话,一些代码示例将会很感激,因为我对密码学没有太多的经验。

  • 问题内容: 我正在为大型视频文件创建MD5校验和。我当前正在使用代码: 但这会创建一个内存缓冲区,并且对于大型视频文件而言并不理想。Swift中是否有一种方法可以计算读取文件流的MD5校验和,从而使内存占用量最小? 问题答案: 您可以分块计算MD5校验和,例如在?中有没有一个MD5库不需要同时输入全部内容?。 这是使用Swift的可能实现(现已针对Swift 5更新) 需要自动释放池来释放所返回的

  • 使用Java /Spring运行Liquibase以对抗Snowflake数据库。第一个部署工作正常,我让Liquibase创建数据库变更日志表和数据库变更日志锁定表。它们被创建、写入并创建数据库对象。 我第二次尝试运行它时,它将获得更改日志锁,但随后会在liquibase中长时间处于静止状态。util:xxxx的计算校验和。然后在5分钟后超时(由于其他配置设置)。如果我删除DatabaseCha

  • 本文向大家介绍C++计算ICMP头的校验和实例,包括了C++计算ICMP头的校验和实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++计算ICMP头的校验和的方法,分享给大家供大家参考。具体实现代码如下: 希望本文所述对大家的C++程序设计有所帮助。

  • 我是JavaFX新手,对软件的设计/架构有问题。 我的用例是: 用户通过文件选择器或每次拖动将文件插入到我的软件中 目前我只计算一个校验和,因为我不知道如何等待其他服务。我觉得我的设计不是很聪明。你有什么建议吗? : 创建4个服务可以吗?或者我可以创建一个包含4个任务的服务吗?在将信息插入数据库之前,如何同步它们并等待所有结果? 谢谢 我试着跟着回答。 对我来说,这看起来很有逻辑,但我在Intel