我使用对称加密对文件进行了加密,如下所示:
gpg --symmetric myfile
Run Code Online (Sandbox Code Playgroud)
结果是一个文件myfile.gpg
。
好吧。现在让我们再次解密文件:
gpg -o myfile --decrypt myfile.gpg
Run Code Online (Sandbox Code Playgroud)
我被要求输入我设置的密码,然后我看到
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected
Run Code Online (Sandbox Code Playgroud)
我不确定那里的第一行和最后一行。
我读到 ZFS 和 Btrfs 使用校验和来防止数据降级,并且我读到 Git 通过对每次提交的所有内容进行散列来实现完整性。
我打算在带有 Btrfs RAID 1 的 Linux NAS 上使用 Git 服务器进行存储,但是如果 Git 具有完整性,我想这不是必需的(至少如果我想要防止数据降级的话,则不需要)。
问题: 那么 Git 的完整性虽然在每次提交时对所有内容进行散列,但是否可以防止或帮助防止位腐烂?
硬盘的物理降级是否可能导致文件内容中的位“翻转”而操作系统“注意到”并在读取文件时告诉您它?例如,ASCII 文本文件(二进制 0111000 0)中的“p”是否可以更改为“q”(0111000 1),然后用户(我)能够打开文件并查看“q”而不知道发生了故障已经发生了?
我对与 FAT、NTFS 或 ReFS 相关的答案感兴趣......如果它有所作为。
我想知道操作系统是否保护我免受此影响,或者我是否应该检查我的数据在副本之间/随时间变化的不变性。
windows hard-drive filesystems data-integrity hardware-failure
我正在寻找一种仅使用笔和纸传输文件的方法。
这有点类似于paperbak,除了我要找的密度要低得多,而且我不想使用打印机或扫描仪。
显然,第一个答案是Base64编码。但是写入和读取如此大量的字符必然会导致错误。就我而言,任何错误都是不可接受的。
第二个答案可能是Reed-Solomon 纠错码(例如,使用rsbep)。但是,这也是一个问题,因为根据我的理解,Reed-Solomon 代码不会纠正插入/删除错误,在这种情况下,这可能比替换错误更有可能。
是否有任何程序可以使用插入/删除感知纠错码对任意文件进行编码/解码?最好它应该适用于 Windows、Linux 和 Mac OS X
显然,对一般问题的任何其他解决方案都是受欢迎的。
在购买 SSD 时,我注意到一些制造商将他们的“Pro”型号宣传为支持 ECC 数据保护的型号。这些制造商在他们的预算模型描述中没有提到 ECC。
然而,维基百科关于闪存的文章指出“NAND依靠ECC 来补偿在正常设备操作期间可能自发失效的位。”
所以问题是是否有任何SSD 设备在幕后使用 ECC 进行正常操作,而 ECC 的“功能”只是一种营销策略吗?
我下载了大量文件,但最近发现使用 md5 和 sha 作为完整性检查器。从那时起,我总是喜欢检查下载的大文件,即使我从未发现它们已损坏。
我们真的需要检查下载文件的完整性吗?
如果需要,请选择我刚刚下载的 Linux 发行版(1GB)作为示例。
谢谢
当 Windows 遇到文件系统上的文件损坏时,它可能会返回以下错误消息:
数据错误(循环冗余校验)。
这表明 Windows 通过计算CRCs检查每个文件操作(复制、移动等)。无论是在操作期间还是在操作之后,Windows 真的会这样做吗?
最近我从种子下载了一个游戏补丁。总补丁大小约为 528 MB,torrent 显示 235 MB 为“浪费”,0 次哈希失败。我记得关于下载的其他一些事情:
在搜索文档以了解“浪费”的含义时,我在 uTorrent 文档中发现了以下提及:
在许多情况下,这表明您连接的群体是假的或中毒的,并且是由一些反 P2P 组织设置的。... hashfails 的另一个来源可能是您的路由器。
我不确定我是否正确理解这一点,但似乎我根本没有 hashfails 的事实与所描述的情况不符。
Btrfs 提供这些命令来验证数据完整性/校验和:
btrfs scrub start <path>|<device>
btrfs check --check-data-csum
Run Code Online (Sandbox Code Playgroud)
但是,AFAIK 总是验证整个文件系统;的path
参数是识别设备的文件系统内,而不是文件/目录上一个文件系统。
现在,我有一个 3TB Btrfs 文件系统。擦洗需要几个小时。有时我需要确保只有某些文件/目录尚未受到 bitrot 的影响——例如,在使用 *.iso 安装映像或恢复备份之前。我如何为此使用 Btrfs - 而不回退到为每个文件保留手动哈希文件?
我知道 Btrfs 不存储单个文件的校验和——它存储数据块的校验和。在这种情况下,我要寻找的是一个命令/工具,它可以识别用于存储某些文件/目录的所有块并仅验证这些块。
我在某处读到 Btrfs 据称会在 read 上验证校验和。也就是说,如果一个文件已经位腐烂,读取它就会失败或类似的事情。是这种情况吗?
我对Spin Retry Count SMART 属性值感到困惑。
在一个特定的硬盘上,我看到原始值为0,流行的 CrystalDiskInfo v7.0.5 将其解释为当前值为166,最差值为100,阈值为 30。
根据维基百科:
“这个属性值的增加是硬盘机械子系统出现问题的迹象。”
根据ActiveSmart(由 Ariolic Software 提供)文档:
“这个属性值的下降是硬盘机械子系统出现问题的征兆。”
问题:
好的,是哪个?
为什么 CrystalDiskInfo 将原始值 0 解释为当前值 166?
我一直认为该属性的原始值为 0 表示驱动器从未重试旋转启动。那是对的吗?
data-integrity ×10
checksum ×3
btrfs ×2
filesystems ×2
hard-drive ×2
windows ×2
aes ×1
bittorrent ×1
crc ×1
download ×1
ecc ×1
encryption ×1
git ×1
gnupg ×1
handwriting ×1
paper ×1
smart ×1
ssd ×1
utorrent ×1
zfs ×1