gpt4 book ai didi

c# - 使用 StreamReader 和 Readline() 为文件生成 MD5 值

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:39 28 4
gpt4 key购买 nike

好的。我的问题的不同方面已在该论坛上被多次询问和回答。但是,我认为从来没有人问过我对这个问题的特殊变体。所以,就这样吧。我正在尝试为同一个文本文件生成两个哈希值,以便比较数据文件在处理之前和处理之后的情况。这一点疯狂的目的是验证整个文件是否已被程序读取和处理。

我已经向自己证明,使用字节和数组将文件分成大块,然后使用 MD5.TransformBlock 将创建一个具有值(value)(该程序代码遍布网络)。而且,当我运行我的程序时,两个哈希值是相同的。但是,我正在使用 StreamReader 的 readline() 方法一次一行地读取文本文件,这会生成不正确的哈希值。

伪代码是:

BufferedStream reader = OpenFile(file)
string initialMd5 = generateMd5FromBufferedStream(reader)

//Start from the beginning again
reader.setposition = 0
reader.DiscardBufferedData();

while((tmpLine = reader.readline()) != null ) {
Byte() buffer = GetBytes(tmpLine);
md5.TransformBlock(buffer, 0, buffer.length, 0)
}

md5.TransformFinal(buffer, 0, 0);
String finalMd5 = ConvertToString(md5.Hash());

有什么想法吗?我对如何解决这个问题的想法已经用完了。

提前致谢!

最佳答案

这不是所发布问题的答案,但检查文件的上次访问或修改日期是否足以检测更改? .Net 在 System.IO 命名空间中有一个 FileInfo 类,它具有 LastAccessTime 和 LastWriteTime 的属性。

关于c# - 使用 StreamReader 和 Readline() 为文件生成 MD5 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136307/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com