Any*_*are 3 javascript c# asp.net file-io file-upload
如果用户将某个文件上传到我的服务器,并且我想确保该文件在上次用户上传时没有更改,我该如何获取此信息?
我有一个日志表User_id
和FileName
(这User_id
是唯一的).我在阅读完内容后删除了该文件.
您可以在删除文件之前存储该文件的哈希值.要查看它是否是正在上载的文件,请将哈希与前一个哈希进行比较.您可以使用System.Cryptography中的一个HashAlgorithm类(如SHA1)执行此操作.
"加密散列函数是一个确定性过程,它接受任意数据块并返回固定大小的位串,即(加密)散列值,这样对数据的意外或有意改变将改变散列值"
这里有一些示例代码可以帮助您入门,假设变量stream
是包含文件数据的流(您可以使用FileStream
它来打开它):
var sha = new System.Security.Cryptography.SHA1Managed();
byte [] hash = sha.ComputeHash(stream);
Run Code Online (Sandbox Code Playgroud)
现在,变量hash
将包含散列,即文件内容的指纹.即使很小的更改(例如单个位)也会导致不同的哈希值,但在同一个文件上获取哈希将始终返回相同的哈希值.