如果用户将某个文件上传到我的服务器,并且我想确保该文件自上次用户上传后没有更改,我该如何获取此信息?
我有一个包含User_id
和FileName
的日志表(User_id
是唯一的)。我在阅读完内容后删除了该文件。
答案 0 :(得分:7)
您可以在删除之前存储hash文件。要查看它是否是正在上载的文件,请将哈希与前一个哈希进行比较。您可以使用System.Cryptography中的一个HashAlgorithm类来完成此操作,例如SHA1。
“加密哈希函数是一个确定性过程 一个任意的数据块并返回一个固定大小的位串 (加密)哈希值,这是一种偶然的或有意的 更改为数据将更改哈希值“
以下是一些示例代码,可以帮助您入门,假设变量stream
是包含您的文件数据的流(您可以使用FileStream
打开它):
var sha = new System.Security.Cryptography.SHA1Managed();
byte [] hash = sha.ComputeHash(stream);
现在,变量hash
将包含散列,即文件内容的指纹。即使是一个小的更改(例如单个位)也会导致不同的哈希值,但是在同一个文件上获取哈希值将始终返回相同的哈希值。
答案 1 :(得分:3)