Nie*_*ich 35 macos applescript keychain
我正在寻找一种方法将OS X钥匙串的内容转储(导出)到我可以轻松处理的文件中,例如制表符分隔的明文或类似的东西.
Keychain Access应用程序不提供任何此类功能,并且获取密钥的数据涉及依次打开每个密钥的数据,并且每次都必须输入密钥链的密码以查看密钥存储的密码.
经过一番挖掘后,我发现有人使用AppleScript和Keychain Scripting应用程序来访问钥匙串(无法链接到单个帖子;向下滚动约三分之二到页面末尾):
http://discussions.apple.com/thread.jspa?threadID=1398759
使用Keychain脚本,您可以访问所有密钥的所有数据字段 - 包括明文密码! - 将这些数据转储到文本文件等中相当容易.我已经测试过它并且效果很好.
但是,此解决方案仍然需要通过单击对话框上的"确定"来确认对每个键的访问权限.这比每次输入钥匙串的密码要好得多,但它仍然令人生气.此外,您必须为每个密钥确认两次访问权限; 一次用于脚本编辑器(或脚本本身,如果它作为应用程序运行),一次用于Keychain脚本.因此,如果您使用100个键处理钥匙串,则必须在200个对话框上手动单击"确定".
我现在正在寻找解决方案来解决这个问题.我意识到,因为密钥链的目的是保护敏感数据并准确防止我正在尝试做的事情,任何这样的解决方案都可能涉及某种黑客攻击.
我对你的想法很感兴趣!
Nie*_*ich 34
好吧,我很蠢.有一个命令行工具调用security
就是这样(以及许多其他关键链上的动作).
示例用法:
security dump-keychain -d login.keychain
Run Code Online (Sandbox Code Playgroud)
这会将login.keychain中的所有数据(用户的默认钥匙串)转储为纯文本,包括密码.您仍然必须确认访问权限,但每个密钥只需要一次,并且使用AppleScript比使用AppleScript要快得多(并且在尝试访问某些字段时不会产生奇怪的错误).这不是黑客.
如果没有该-d
选项,它将转储除密码之外的所有字段.
密钥的转储数据如下所示(对于Internet密钥;程序密钥和证书具有其他字段,但格式相同):
keychain: "/Users/<username>/Library/Keychains/login.keychain"
class: "inet"
attributes:
0x00000007 <blob>="tech.slashdot.org (<username for this web login>)"
0x00000008 <blob>=<NULL>
"acct"<blob>="<username for this web login>"
"atyp"<blob>="form"
"cdat"<timedate>=0x32303038303432333038323730355A00 "20080423082705Z\000"
"crtr"<uint32>=<NULL>
"cusi"<sint32>=<NULL>
"desc"<blob>="Kennwort des Web-Formulars"
"icmt"<blob>="default"
"invi"<sint32>=<NULL>
"mdat"<timedate>=0x32303038303432333038323730355A00 "20080423082705Z\000"
"nega"<sint32>=<NULL>
"path"<blob>=<NULL>
"port"<uint32>=0x00000000
"prot"<blob>=<NULL>
"ptcl"<uint32>="http"
"scrp"<sint32>=<NULL>
"sdmn"<blob>=<NULL>
"srvr"<blob>="tech.slashdot.org"
"type"<uint32>=<NULL>
data:
"<the plaintext password for this key>"
Run Code Online (Sandbox Code Playgroud)
TCB*_*B13 14
请阅读: https ://gist.github.com/rmondello/b933231b1fcc83a7db0b
忽视: - - -
我在每个键的"始终允许"对话框中找到了溶剂!
只需使用sudo运行上一个命令即可.
sudo security dump-keychain -d login.keychain
Run Code Online (Sandbox Code Playgroud)
这样您只需输入两次密码即可.一个在终端上sudo和另一个解锁钥匙串!;)
祝你今天愉快!
归档时间: |
|
查看次数: |
30757 次 |
最近记录: |