我认为使用“encfsctl passwd path/to/encrypted”更改密码会更改所有文件名。但它没有用。任何想法为什么?
我明白了,所以密码已正确更改:
Enter current Encfs password
EncFS Password:
Enter new Encfs password
New Encfs Password:
Verify Encfs Password:
Volume Key successfully updated.
我认为使用“encfsctl passwd path/to/encrypted”更改密码会更改所有文件名。但它没有用。任何想法为什么?
我明白了,所以密码已正确更改:
Enter current Encfs password
EncFS Password:
Enter new Encfs password
New Encfs Password:
Verify Encfs Password:
Volume Key successfully updated.
数据加密系统(通常)不会直接使用密码对数据进行加密。这样做的问题是当更改密码时,所有数据都需要重新加密,这是一个非常密集的过程。(它也阻止了支持多个密码。)而是在系统初始化时生成一个随机密钥,并使用这个随机密钥对数据进行加密。然后使用密码对随机密钥进行加密并存储在磁盘上。要解密数据,首先使用密码解密随机密钥,然后使用随机密钥解密数据。更改密码只涉及重新加密这个随机密钥,而不是所有数据。
encfs 联机帮助页提到:
这意味着它使用了这个方案。
在 EncFS 中,文件名和数据有不同的初始化向量。这可以防止攻击者加密数据(或文件名)并将其与密文进行比较。
如默认答案中所述,密码实际上仅用于加密Key。并且密钥用于加密数据。因此,假设您更改了密码,您可以重新加密容器内的所有数据。例如。像这样(如果包含解密文件的容器是~/dec/)