文件CRC和MD5校验

文件CRC和MD5校验

CRC和MD5用于文件和数据的传输校验,以确认是否接收成功。

unit CRCMD5;interface
{ 获取文件CRC校验码 }
function GetFileCRC(const iFileName: string): String;
{ 获取字符串CRC校验码 }
function GetStringCRC(const Str: string): Cardinal;
{ 取文件MD5码 }
function GetFileMD5(const iFileName: string): String;implementationuses Classes, IdHashMessageDigest, IdHashCRC;{ 获取文件CRC校验码 }
function GetFileCRC(const iFileName: string): String;
varMemSteam: TMemoryStream;MyCRC   : TIdHashCRC32;
beginMemSteam := TMemoryStream.Create;MemSteam.LoadFromFile(iFileName);MyCRC  := TIdHashCRC32.Create;Result := MyCRC.HashStreamAsHex(MemSteam);MyCRC.Free;MemSteam.Free;
end;
{ 获取字符串CRC校验码 }
function GetStringCRC(const Str: string): Cardinal;
varMyCRC: TIdHashCRC32;
beginMyCRC  := TIdHashCRC32.Create;Result := MyCRC.HashValue(Str);MyCRC.Free;
end;
{ 取文件MD5码 }
function GetFileMD5(const iFileName: string): String;
varMemSteam: TMemoryStream;MyMD5   : TIdHashMessageDigest5;
beginMemSteam := TMemoryStream.Create;MemSteam.LoadFromFile(iFileName);MyMD5  := TIdHashMessageDigest5.Create;Result := MyMD5.HashStreamAsHex(MemSteam);MyMD5.Free;MemSteam.Free;
end;
end.

  

转载于:https://www.cnblogs.com/hnxxcxg/p/11079660.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已成功拿下字节、腾讯、脉脉offer,吐血整理

为什么想跳槽? 简单说一下当时的状况,我在这家公司做了两年多,这两年多完成了一个大项目,作为开发的核心主力,开发压力很大,特别是项目上线前的几个月是非常辛苦,几乎每晚都要加班到12点以后&a…

已成功拿下字节、腾讯、脉脉offer,满满干货指导

开头 笼统来说,中年程序员容易被淘汰的原因其实不外乎三点。 1、输出能力已到顶点。这个人奋斗十来年了,依旧碌碌无为,很明显这人的天花板就这样了,说白了,天赋就这样。 2、适应能力越来越差。年纪大,有家…

ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段...

原文地址:ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段ServletRequest 基本概念 JavaWeb中的 "Request"对象 实际为 HttpServletRequest 或者 ServletRequest, 两者都为接口服务器接收请求…

已成功拿下字节、腾讯、脉脉offer,算法太TM重要了

一、背景介绍 从实用角度梳理一篇能够帮大家快速扫盲的CMake基础教程,也是对我目前负责项目的一次学习总结。既然选择从项目实用性考虑,下面的讲解内容可能并不一定完整,更多的是符合项目目前使用到的一些特性。 接下来正面回答这个问题&am…

带你一步一步深入Handler源码,醍醐灌顶!

开头 最近有粉丝反应,不想做安卓了,有朋友转到前端了,安卓不行了,问我怎么办? 自从RN,Weex这种跨平台编程语言出来以后,安卓将死的言论总是不绝于耳。随着颇有摧枯拉朽之势Flutter的出现&…

记得把每一次面试当做经验积累,深夜思考

开头 Android开发,假如开始没有任何的开发经验的话, 千万不要着急,不要想着在短时间内就把一个语言学习好, 因为你之前没有任何的学习经验, 在这个过程中需要有耐心地学习完JAVA的基础知识, 然后才开始踏上…

讲的真透彻!还有人不知道什么是AndroidX的吗?已拿offer入职

前言 春招已经接近尾声了,不知道各位小伙伴有没有收获自己心仪的offer呢。笔者疫情被裁后在家LeetCode狂刷了800多题,加之自己以为工作总结的知识、经验,系统化的整理了一下。在五一期间已经收获了字节的offer。废话不多说,下面是…

Rancher中的服务升级实验

创建一个空的应用myAPP,在myAPP 应用中,创建一个服务nginx-test,包含2个容器副本,使用nginx:1.13.0镜像。假设使用一段时期以后,nginx的版本升级到1.13.1了,如何将该服务的镜像版本升级到新的版本&#xff…

该如何高效实用Kotlin?看这一篇就够了!

前言 说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码的印象刻在了很多人的心里。 与其它行业一样,凡是有高级和普通&…

apply()与call()

JavaScript中的每一个Function对象都有一个apply()方法和一个call()方法,它们的语法分别为: /*apply()方法*/ function.apply(thisObj[, argArray])/*call()方法*/ function.call(thisObj[, arg1[, arg2[, [,...argN]]]]); 它们各自的定义: a…

Java基于redis实现分布式锁(SpringBoot)

前言 分布式锁,其实原理是就是多台机器,去争抢一个资源,谁争抢成功,那么谁就持有了这把锁,然后去执行后续的业务逻辑,执行完毕后,把锁释放掉。 可以通过多种途径实现分布式锁,例如…

请谈下Android消息机制,复习指南

谈起Android框架体系架构,我先提个问:什么是Android框架体系架构 ? Android系统构架是安卓系统的体系结构,android的系统架构和其操作系统一样,采用了分层的架构,共分为四层,从高到低分别是And…

SVN Cannot merge into a working copy that has local modifications

我尝试了 主支,分支都提交,但是依然无法合并。 最终,我在服务器上将分支删除,然后主支在拷贝过去。 一,打开服务器资源 二,删除分支 三,拷贝主支到分支 四,刷新分支,就能…

资深Android开发带你入门Framework,再不刷题就晚了!

想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样。 本文参考了目前大部分 Android 应用启动优化的方案,将大家的方案做一个汇总,如果你有这方面的需求,只…

资深Android开发带你入门Framework,架构师必备技能

开头 先说一下我大概的情况吧。渣本毕业,工作已经有快两年了,从高中就开始玩小破站。无论是学习还是日常放松都是在b站。大学主学的软件技术专业,所以,进大学校门那一刻起,去上海bilibili工作就在心里埋下了种子。在学…

Java——线程锁,死锁,等待唤醒机制

一、线程锁 线程安全问题 其实,线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,…

资深大牛带你了解源码!关于Android程序员最近的状况,大厂内部资料

前言 回顾一下自己这段时间的经历,因公司突然通知裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感觉今年的寒冬有点冷。公司开始第二波裁员,我决定主动拿赔偿走人。后续的面试过程我做了一些准备&#xff…

AE 新建项目(一)(持续更新,做到哪算哪)

开发环境 工具:Visual Studio 2012、ArcEngine10.4.1 语言:C# 开发步骤 1、打开Visual Studio 2012,选择新建项目,创建一个.NET Framework4的,Windows窗体应用程序。取名Demo 2、工具箱中,拖一个splitConta…

基于redis分布式锁实现的多线程并发程序

前两个版本的代码 都或多或少存在一定的问题,虽然可能微乎其微,但是程序需要严谨再严谨, 第一个版本问题: 局限于单机版,依赖于 Jvm的锁 第二个版本问题: 极端情况下,解锁逻辑的问题&#xf…

day15 Ui自动化元素的定位

day15 元素的定位Ui自动化元素的定位1、火狐浏览器安装try xpath2、元素定位思路:(1)查看页面元素,确认能够唯一定位到元素的属性,比如id,文案3、学习xpath cssSelector 手写定位方式xpath(xpat…