[英]How to know if the uploaded file has been changed?
如果用戶將某些文件上傳到我的服務器上,並且我想確保該文件與上次用戶上次上傳以來沒有發生更改,那么如何獲得此信息?
我有一個帶有User_id
和FileName
的日志表( User_id
是唯一的)。 閱讀內容后刪除文件。
您可以在刪除文件之前存儲該文件的哈希 。 要查看是否與上傳的文件相同,請將哈希值與上一個哈希值進行比較。 您可以使用System.Cryptography中的HashAlgorithm類之一,例如SHA1來執行此操作。
“加密散列函數是一種確定性過程,該過程采用任意數據塊並返回固定大小的位字符串((加密)散列值,以便對數據進行意外或有意更改將更改散列值”)
這是一些入門示例代碼,假設變量stream
是包含文件數據的流(可以使用FileStream
打開它):
var sha = new System.Security.Cryptography.SHA1Managed();
byte [] hash = sha.ComputeHash(stream);
現在,變量hash
將包含哈希,即文件內容的指紋。 即使是很小的更改(例如單個位)也將導致不同的哈希值,但是對同一文件進行哈希處理將始終返回相同的哈希值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.