Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用FreePascal(拉撒路)计算CRC32校验和?

如何使用FreePascal(拉撒路)计算CRC32校验和?
EN

Stack Overflow用户
提问于 2018-11-14 14:32:26
回答 2查看 702关注 0票数 1

我必须为我的大学做一些项目,我需要计算CRC32。但我之前几乎没有轮班工作,所以即使我读完理论,它仍然对我来说很难。我找到了一些用于C语言的CRC32 basic算法(不是我的),并尝试为拉撒路(Delphi)重写它。但它不起作用。我不明白,出什么事了。请帮助(*_ _)人

下面是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
procedure TMyFrame.CRC32_Checksum();
var
  P : Pointer;
  Size, i : Integer;
  CRC, j : LongWord;
  B : ^Byte;
  flag : Boolean;
begin
  AssignFile (f, FileName);
  Reset(f, 1);
  Size := FileSize(f);
  GetMem(P, Size);
  BlockRead(f, P^, Size);
  B := P;
  //
  //
  CRC := $FFFFFFFF;
  for i := 1 to Size do
    begin
      CRC := CRC XOR B^;
      Inc(B);
      for j := 0 to 7 do
        begin
          flag := (CRC AND 1) > 0;
          if flag then
            CRC := (CRC SHR 1) XOR $04C11DB7
          else
            CRC := CRC SHR 1;
        end;
      end;
  LabeledEdit1.Text := IntToHEX(CRC, 8);
  //
  //
  Freemem(P);
  CloseFile(f);
end;                   
EN

回答 2

Stack Overflow用户

发布于 2018-11-14 16:26:47

0xCBF439260x340BC6D9的逐位逆(“非”)。您只需对结果使用not,或对$FFFFFFFF使用exclusive或。

票数 3
EN

Stack Overflow用户

发布于 2018-11-15 10:32:12

请注意,FPC附带了一个CRC32单元。(来自上面Mark Adler的crc32.c )

这个单元有一个函数来计算一个名为crc32()的块的CRC。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  function crc32 (crc : cardinal; buf : Pbyte; len : cardinal): cardinal;

XOR包含在这个crc32.crc32()函数中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53302601

复制
相关文章
5.0 CRC32校验技术概述
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化则拒绝执行,通过此种方法来保护内存或磁盘文件不会被非法篡改。总之,内存和磁盘中的校验技术都是用于确保数据和程序的完整性和安全性的重要技术。
微软技术分享
2023/09/18
7290
5.0 CRC32校验技术概述
5.0 CRC32校验技术概述
CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化则拒绝执行,通过此种方法来保护内存或磁盘文件不会被非法篡改。总之,内存和磁盘中的校验技术都是用于确保数据和程序的完整性和安全性的重要技术。
微软技术分享
2023/10/11
6490
5.0 CRC32校验技术概述
[译] APT分析报告:07.拉撒路(Lazarus)两款恶意软件分析
这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助。前文分享了Rampant Kitten攻击活动,包括Windows信息窃取程序、Android后门和电报网络钓鱼页面。这篇文章将介绍APT组织拉撒路(Lazarus)使用的两款恶意软件,并进行详细分析。个人感觉这篇文章应该是韩国或日本安全人员撰写,整体分析的深度距安全大厂(FireEye、卡巴斯基、360)的APT报告还有差距,但文章内容仍值得我们学习。
Eastmount
2021/12/03
1.4K0
[译] APT分析报告:07.拉撒路(Lazarus)两款恶意软件分析
python 计算校验和
校验和是经常使用的,这里简单的列了一个针对按字节计算累加和的代码片段。其实,这种累加和的计算,将字节翻译为无符号整数和带符号整数,结果是一样的。
py3study
2020/01/06
2.7K0
tcp/ip校验和计算
#include <cassert> #include <cstdlib> #include "network.h" unsigned short ChecksumTcpUdp(unsigned
战神伽罗
2019/09/03
1.2K0
tcp/ip校验和计算
python crc32两种校验方式
python crc32有两种校验.第一种是assii码校验第二种是16进制校验.
py3study
2020/01/09
1.6K0
校验和计算原理_CRC校验原理及代码
首先,IP、ICMP、UDP和TCP报文头都有检验和字段,大小都是16bit,算法基本上也是一样的。
全栈程序员站长
2022/11/17
2.2K0
校验和计算原理_CRC校验原理及代码
液态金属机器人吃喝拉撒还会拥抱
液态金属“吞食”少量物质后可以机器形态高速运动。可变形液态金属机器习性接近简单软体生物。 3D打印的清华大学英文缩写,每个字母约1平方厘米。 3D打印的三角形结构,边长1厘米。    近日,由我国科
机器人网
2018/04/13
6850
液态金属机器人吃喝拉撒还会拥抱
UDP协议:校验和的计算
在讲UDP的校验和计算之前,先需要明确一件事情:在计算UDP报文的Checksum之前,我们需要在UDP报文段的头部之前,加入一个“伪头部”。
灯珑LoGin
2022/10/31
3.5K0
UDP协议:校验和的计算
欧拉路和欧拉回路理论基础
   欧拉路是指从图中任意一点开始到任意一点结束的路径,并且图中每条边通过且只通过一次。也即可以一笔画出。
用户2965768
2018/08/30
7170
欧拉函数及其计算_计算n的欧拉函数
计算这个值的方法就叫做欧拉函数,用φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。
全栈程序员站长
2022/09/23
1.1K0
欧拉函数及其计算_计算n的欧拉函数
如何计算和使用SaaS收入留存
来源:新宜观点|作者:张若曦 ---- 经常性收入是SaaS等行业成为投资机构重点关注方向的原因之一,这是因为投资人们喜欢稳定的、经常性的现金流,公司估值也与经常性收入的状况密切相关。如何分析经常性收入是否健康?一般来讲可以使用GDR(毛收入留存)和NDR(净收入留存)来衡量。 对于SaaS公司来说,跟踪、监控和改善经常性收入非常重要,它在尽职调查过程中还会更受关注。 这篇文章将详细介绍GDR和NDR这两个SaaS业务的关键指标。 如何计算GDR GDR是指原有客户经常性收入减少的比率,反应了
腾讯SaaS加速器
2021/10/25
1.8K0
tcp 校验和_tcp如何保证有序
发送方将数据体取反码,检验和也取反码相加,高于4bit的和低于4bit的相加,得到的就是校验和,保存在tcp头的校验和字段,
全栈程序员站长
2022/11/17
8050
Code 39码校验位是如何计算的
CODE 39码包括0-9数字、26个字母和一些符号在内共计43个字符。由于可以处理字母,CODE 39在工业领域必不可少,用于汽车、电子等工厂自动化行业。Code 39的校验位位于条形码数据的最后一个字符旁。校验位在条码软件中是自动生成的,可以选择打印也可以不打印。下面主要介绍Code 39码的校验位是如何计算出来的。
神奇像素科技
2022/01/06
1.4K0
Code 39码校验位是如何计算的
CRC32算法冲突概率测试和分析
最近因为某个业务需要用到CRC32算法,但业务又不能容忍重复的数值出现,于是自然就想了解一下CRC32算法的冲突概率(或者叫碰撞概率)。 本以为这种问题应该很多人分析过,结果找来找去就只看到一大堆数学
Albert陈凯
2018/04/04
5.7K0
CRC32算法冲突概率测试和分析
如何在Spring Boot项目使用参数校验
开发web项目有时候我们需要对controller层传过来的参数进行一些基本的校验,比如非空,非null,整数值的范围,字符串的个数,日期,邮箱等等。最常见的就是我们直接写代码校验,这样以后比较繁琐,而且不够灵活。 Bean Validation 1.0(JSR-303)是一个校验规范,在spring Boot项目由于自带了hibernate validator 5(http://hibernate.org/validator/)实现,所以我们可以非常方便的使用这个特性 。 核心的pom依赖: <depen
我是攻城师
2018/05/14
1K0
Java异或校验_异或校验计算器
今天要用到异或校验,折腾了半天,写下来留作备用。 功能是将一串16进制的数进行异或校验,输出校验和。 代码:
全栈程序员站长
2022/11/09
1.4K0
数据中心的光纤链路损耗如何计算?
在计算损耗预算时,了解行业标准规定的已知应用的损耗限值非常重要。但是,如果真的想知道如何根据限值设计系统,还需要了解特定供应商的电缆和计划部署的连接损耗——由此会影响您决定采用什么组件。这可能会使任务变得有点棘手,因为并非所有的电缆和连接器都完全一样。
朗坤君
2021/06/16
1K0
【Vivado那些事儿】FPGA如何计算上拉及下拉强度
要计算内部上拉或下拉强度,需要从器件 DC 及 AC 开关特性数据手册获得 Irpu(最大值)或 Irpd(最大值)。
碎碎思
2022/03/11
7380
点击加载更多

相似问题

在拉撒路FreePascal中使用Word OLE

10

拉撒路RegisterFields

11

用AnsiString将拉撒路中的UnicodeString转换为FreePascal

14

拉撒路SimpleServer

15

TPanel清洗(拉撒路)

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文