看起来一个keychain文件(扩展名为.keychain
)通常会有一个与之关联的不可见文件,位于同一目录下。
这个不可见文件始终具有以下属性:
- It is empty (zero bytes).
- Its permissions are
0444
(read-only for all users). Its name consists of
.fl
followed by 8 hex characters. For example:.fl043D1EDD .fl947E1BDB .fl9FAF0136 .fl12663120 .fl8E6EFC6C .flCF600F4B .fl1D8ECE61 .fl0D1D1BA9 .fl79E88CD1 .fl62323D2F .fl75262C83 .fl652F188E
这个不可见的文件可以被删除,但是当钥匙串内容下次被修改时,这个不可见的文件将会以同样的名称重新创建。
以下是一些步骤,使用Keychain Access实用程序进行演示:
- 通过选择文件 > 新建钥匙串并选择要创建它的目录来创建一个新的钥匙串。在与新钥匙串相同的目录中会创建一个不可见的文件。
- 删除不可见的文件(使用Finder或终端)。
- 修改钥匙串的内容。例如,通过选择文件 > 新建安全笔记项向钥匙串添加一个安全笔记。不可见的文件将以相同的名称重新创建。
- 通过选择文件 > 删除钥匙串 > 删除参考和文件来删除钥匙串。不可见的文件也将被删除。
更新
使用苹果终端中的security
工具操作钥匙串时,同样会创建相同的不可见文件:
Create a new keychain. An invisible file is also created.
$ cd ~/Desktop/ $ ls -1a . .. $ /usr/bin/security create-keychain ~/Desktop/Test.keychain $ ls -1a . .. .fl1BCE4B9A Test.keychain
Delete the invisible file.
$ rm .fl1BCE4B9A $ ls -1a . .. Test.keychain
Modify the keychain's contents (eg: by adding an internet password). The invisible file is recreated with the same name.
$ /usr/bin/security add-internet-password -a account -s google.com -w password ~/Desktop/Test.keychain $ ls -1a . .. .fl1BCE4B9A Test.keychain
Delete the keychain. The invisible file is deleted too.
$ /usr/bin/security delete-keychain ~/Desktop/Test.keychain $ ls -1a . ..
问题
- 为什么会创建这些不可见文件?它们的目的是什么?
- 文件名中的
fl
是什么意思? - 文件名中的8个十六进制字符是什么?是一种唯一标识符或哈希值来识别钥匙串吗?
- 是否有办法防止在创建或修改钥匙串时创建这些文件?