linux - 我想以某种方式获得Linux中文件的唯一标识符,有什么想法吗?
问题描述
我想以某种方式获得Linux中文件的唯一标识符,以便可以将其输入到哈希函数中以生成索引,唯一ID永远不会改变,有什么想法吗?
更多详细信息:我想创建一个文件完整性程序,以检查文件是否已被更改。我将使用一个哈希表来存储文件的密钥及其相应的校验和。我需要一个永远不会改变的文件的唯一标识符,因为我需要将它输入到我的哈希函数中,该函数会为该文件生成索引到哈希表中,然后我可以重新生成文件的校验和,看看它是否已经改变了已存储。
如果 UI 发生变化,我无法在表中找到文件的校验和。如果我使用文件名作为 UI,我将不得不假设恶意用户没有更改它。
解决方案
你能得到的最接近的东西是一个 inode,但即使这样也可能会出现问题。例如,某些文本编辑器可能会删除文件然后重写它。不过,您可能希望扭转您的问题。不要保留文件名、路径或 inode 的索引并检查文件的新哈希是否与索引中的哈希匹配,而是保留哈希索引和每个哈希的文件路径。然后在重新散列文件系统后确定索引中不再存在哪些散列,您将获得已更改文件的列表。
推荐阅读
- javascript - 如何访问在渲染中设置的 ref
- java - Map -> Reduce -> Reduce(两个reducer依次调用)-如何配置驱动程序
- eclipse - 在 Eclipse 中运行特定的 gradle 脚本?
- javascript - 如何使用 JQuery 制作显示动态图像放大版本的弹出框?
- visual-studio - 是否还有适用于 Visual Studio 2013 Update 5 的有效 Web 安装程序?
- javascript - e.preventDefault() 不是 Reactjs 中的函数,使用了绑定
- r - 如何跨两个不同的数据框列表进行计算?
- javascript - 同时启用 redux-promise 和 redux-saga 中间件似乎会导致问题
- javascript - 在不刷新页面的情况下显示更改的 localStorage?
- ios - SwiftUI List 仅使用给定数组的第一项