gpt4 book ai didi

c# - 如何知道上传的文件是否被更改?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:09:30 25 4
gpt4 key购买 nike

如果用户将一些文件上传到我的服务器,我想确保该文件自用户上次上传以来没有被更改,我如何才能获得此信息?

我有一个包含 User_idFileName 的日志表(User_id 是唯一的)。我在阅读内容后删除了该文件。

最佳答案

您可以存储 hash删除文件之前。要查看它是否是正在上传的同一文件,请将哈希值与之前的哈希值进行比较。您可以使用 System.Cryptography 中的 HashAlgorithm 类之一来执行此操作,例如 SHA1 .

"A cryptographic hash function is a deterministic procedure that takes an arbitrary block of data and returns a fixed-size bit string, the (cryptographic) hash value, such that an accidental or intentional change to the data will change the hash value"

这里是一些帮助您入门的示例代码,假设变量 stream 是一个包含您的文件数据的流(您可以使用 FileStream 打开它):

var sha = new System.Security.Cryptography.SHA1Managed();
byte [] hash = sha.ComputeHash(stream);

现在,变量 hash 将包含哈希值,即文件内容的指纹。即使是很小的更改(例如一个位)也会导致不同的哈希值,但对同一文件进行哈希处理将始终返回相同的哈希值。

关于c# - 如何知道上传的文件是否被更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286495/

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