计算文件的MD5校验和

计算文件的MD5校验和

我在用iTextSharp从PDF文件中读取文本。但是,有时我无法提取文本,因为PDF文件只包含图像。我每天下载相同的PDF文件,我想看看PDF是否已经修改。如果无法获得文本和修改日期,则为MD5校验和是判断文件是否已更改的最可靠的方法?

如果是的话,一些代码示例将是非常感谢的,因为我对密码学没有太多的经验。


跃然一笑
浏览 493回答 3
3回答

潇湘沐

我知道这个问题已经回答了,但我用的是:using&nbsp;(FileStream&nbsp;fStream&nbsp;=&nbsp;File.OpenRead(filename))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;GetHash<MD5>(fStream)}哪里盖塔什:public&nbsp;static&nbsp;String&nbsp;GetHash<T>(Stream&nbsp;stream)&nbsp;where&nbsp;T&nbsp;:&nbsp;HashAlgorithm&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;sb&nbsp;=&nbsp;new&nbsp;StringBuilder(); &nbsp;&nbsp;&nbsp;&nbsp;MethodInfo&nbsp;create&nbsp;=&nbsp;typeof(T).GetMethod("Create",&nbsp;new&nbsp;Type[]&nbsp;{}); &nbsp;&nbsp;&nbsp;&nbsp;using&nbsp;(T&nbsp;crypt&nbsp;=&nbsp;(T)&nbsp;create.Invoke(null,&nbsp;null))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[]&nbsp;hashBytes&nbsp;=&nbsp;crypt.ComputeHash(stream); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(byte&nbsp;bt&nbsp;in&nbsp;hashBytes)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(bt.ToString("x2")); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sb.ToString();}也许不是最好的方法,但也很方便。
打开App,查看更多内容
随时随地看视频慕课网APP