计算文件的 MD5 校验和

2023-12-27

我在用着iTextSharp https://en.wikipedia.org/wiki/IText从 PDF 文件中读取文本。但是,有时我无法提取文本,因为 PDF 文件仅包含图像。我每天都会下载相同的PDF文件,我想看看PDF是否被修改过。如果无法获取文本和修改日期,则为MD5 http://en.wikipedia.org/wiki/MD5校验和是判断文件是否已更改的最可靠方法?

如果是的话,一些代码示例将不胜感激,因为我在密码学方面没有太多经验。


使用起来非常简单系统.安全.加密.MD5 https://msdn.microsoft.com/en-us/library/system.security.cryptography.md5(v=vs.110).aspx:

using (var md5 = MD5.Create())
{
    using (var stream = File.OpenRead(filename))
    {
        return md5.ComputeHash(stream);
    }
}

(我相信actually使用的 MD5 实现不需要被丢弃,但无论如何我可能仍然会这样做。)

之后如何比较结果取决于您;例如,您可以将字节数组转换为 base64,或者直接比较字节。 (请注意数组不会覆盖Equals。使用 base64 更容易正确使用,但如果您真的只对比较哈希值感兴趣,效率会稍低。)

如果您需要将哈希表示为字符串,可以使用以下命令将其转换为十六进制BitConverter:

static string CalculateMD5(string filename)
{
    using (var md5 = MD5.Create())
    {
        using (var stream = File.OpenRead(filename))
        {
            var hash = md5.ComputeHash(stream);
            return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算文件的 MD5 校验和 的相关文章

  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 根据插入顺序迭代哈希?

    不想对条目进行排序 使用它也不会保留顺序 foreach my val keys hash 默认情况下 Perl 5 中的哈希值是无序的 您可以使用tie http perldoc perl org functions tie html a
  • 重载<<的返回值

    include
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 当按下键盘上的按钮时如何使方块移动? Tkinter、Python

    当按下键盘上的 d 按钮 例如 时 如何使方块移动 from tkinter import root Tk root title Snake root width 400 root height 400 field Canvas root
  • 如何避免使用共享静态库的 xcode 中的“重复符号”错误?

    我将静态库 A B 和 C 组织到 Xcode 项目中 A 和 B 依赖于 C 当我构建依赖于 A 和 B 的 iPhone 项目时 我收到链接器错误 指出在 A 和 B 中检测到重复符号 来自 C 我如何组织这三个静态库 以便我可以将它们
  • 高斯拉普拉斯算子是用于斑点检测还是边缘检测?

    以下代码来自 被要求删除链接 但我想知道它到底是如何运作的 我很困惑这是否被认为是边缘检测或斑点检测 因为维基百科将高斯拉普拉斯算子 LoG 列为斑点检测 https en wikipedia org wiki Blob detection
  • Xamarin UWP 应用程序无法运行

    我正在使用 Visual Studio Update 3 Update 3 补丁 我创建了一个空白XAML 应用程序 Xamarin Forms 便携式 使用 C 的解决方案跨平台模板 我在配置管理器中选中了构建和部署 我已将解决方案更新为
  • Android 在 LazyColumn 中组合 LazyRow 会产生垃圾行为

    我正在尝试创建一个具有嵌套滚动行为的撰写屏幕 为此 我使用lazyColumn作为父级 并且在其中我确实有多个带有layRow的行 val scrollState rememberLazyListState LazyColumn state
  • 如何使用 Phonegap Build 删除 iOS 状态栏?

    使用 Phonegap Build 3 1 时是否可以去掉 iOS7 中的状态栏 在 Xcode 中本地构建时 我可以删除状态栏 但是当我尝试 Phonegap Build 时 它又回来了 是否有配置首选项可以完全删除状态栏 如果没有 是否
  • 在后台将 iPhone 作为 iBeacon 运行

    是否可以将 iOS 7 设备作为蓝牙 LE 外围设备 iBeacon 运行并在后台进行广告 我已经能够使用下面的代码让它在前台做广告 并且可以从另一台 iOS 设备上看到它 但一旦我返回主屏幕 它就会停止广告 我确实在 plist 中添加了
  • 使用Kafka主题存储多年数据

    我正在寻找一种从多个设备收集指标数据的方法 数据应该由多个 group by 之类的函数聚合 聚合函数列表不完整 稍后将添加新的聚合 并且需要聚合第一天收集的所有数据 是否可以创建具有 100 年有效期的 Kafka 主题并将其用作此目的的
  • mapStateToProps 必须返回一个对象。相反收到了Map{}?

    您好 我使用不可变映射作为状态 当我尝试 mapStateToProps 时 出现此错误 未捕获的不变违规 mapStateToProps必须返回一个对象 而是收到了 Map 这是我的代码 成分 const mapStateToProps
  • Android 模拟器的阿拉伯语文本支持

    我想在我的 Android 应用程序中显示阿拉伯文本 我正在开发适用于 Android 1 6 的应用程序 问题是 当我运行该应用程序时 我只能看到方框而不是阿拉伯文本 谷歌搜索后 我发现必须添加阿拉伯语字体 ttf true type f
  • 有没有办法从签名的 APK 中获取密钥哈希?

    有没有办法从签名的 APK 中获取密钥哈希 我们有一个签名的 Android apk 文件 我们想找出这个 APK 的密钥哈希 用于 Facebook SDK 我们可以通过像 jarsigner 这样的东西来做到这一点吗 有什么建议么 在
  • 验证 QTableView 中的用户输入

    我有一个QTableView我想验证用户输入 如果用户在单元格中插入无效值QTableView 我想突出显示该单元格并禁用QPushButton 我怎样才能实现这个目标 我可以用吗QValidator 是的 你可以这样做 使用自定义QIte
  • 如何在PHP中实现一个可以接受任意参数的函数?

    PHP有这样的功能吗 您可以使用这些功能 func get arg http php net manual en function func get arg php http php net manual en function func
  • 如何在特定的 ajax 调用上调用 .ajaxStart()

    我对网站文档进行了一些 ajax 调用 这些调用根据 ajax 状态显示或隐藏进度条 document ajaxStart function ajaxProgress show document ajaxStop function ajax
  • mime.types 不用于 Angular 8 应用程序的 javascript 和 css 文件(使用 nginx:alpine 进行 dockerized)

    我的角度应用程序有一个多阶段 docker 映像 它使用nginx 高山基础图像 我有以下 nginx 配置和 VHOST 设置文件 在 docker 容器内 etc nginx nginx conf etc nginx conf d de
  • 如何在不注销的情况下清除所有会话变量

    我试图清除所有会话变量 但不注销当前用户 user request session get member id None request session flush request session modified True request
  • Swagger发送正文和formData参数[重复]

    这个问题在这里已经有答案了 我正在使用 Swagger 2 0 但在发送多个 post 参数时遇到问题 我有一个招摇错误Operation cannot have a body parameter and a formData parame
  • Java 接口使用指南——接口中的 getter 和 setter 是否不好?

    人们如何看待界面中使用的最佳指南 什么应该和不应该进入界面 我听人们说 作为一般规则 接口必须只定义行为而不是状态 这是否意味着一个接口不应该包含 getter 和 setter 吗 我的观点 对于 setter 来说也许不是这样 但有时我
  • 从 Hibernate 会话获取 EntityManager

    我已经在 Hibernate 上构建了我的应用程序 但现在我需要为一个第三方模块获取 EntityManager 您能给我一些如何从 Hibernate 获取 JPA 对象的提示吗 就我而言 我有 SessionFactory 并需要 En
  • 计算文件的 MD5 校验和

    我在用着iTextSharp https en wikipedia org wiki IText从 PDF 文件中读取文本 但是 有时我无法提取文本 因为 PDF 文件仅包含图像 我每天都会下载相同的PDF文件 我想看看PDF是否被修改过