可通过钥匙串访问手动复制、终端security命令批量导出、第三方脚本Export-Safari-Passwords自动化生成、加密备份及AppleScript导入五步实现Safari密码CSV导出与迁移。
如果您需要将Safari浏览器中保存的密码钥匙串数据导出为CSV格式,以便在其他设备或密码管理工具中复用,则需借助macOS系统内置的钥匙串访问工具与终端命令配合操作。以下是实现此目标的具体步骤:
一、通过钥匙串访问应用手动导出单条凭证
钥匙串访问应用允许用户查看并复制单个网站凭证的详细信息,虽不支持直接批量导出CSV,但可作为基础验证与关键条目提取手段。
1、打开“访达”,进入“应用程序”文件夹,双击运行“钥匙串访问”。
2、在左侧边栏选择“登录”钥匙串,点击上方“密码”类别。
3、在右侧列表中找到目标网站条目,双击打开详情窗口。
4、勾选“显示密码”,输入管理员密码授权后,密码字段将可见。
5、分别选中“账户名称”和“密码”字段内容,使用Command+C组合键复制,粘贴至文本编辑器中手动整理为CSV行格式(如:example.com,username,password)。
二、使用终端命令导出所有网页密码为纯文本再转换CSV
macOS 12及以上版本支持通过security命令行工具读取钥匙串中的互联网密码条目,结合awk与sed可生成结构化输出,适用于批量处理需求。
1、打开“终端”应用。
2、执行以下命令列出所有互联网密码条目的摘要信息:
security find-internet-password -s "" -g 2>/dev/null | grep -E "acct|srvr|pwd" | sed 's/[^[:print:]]//g'
3、运行完整导出脚本(请先确保已解锁“登录”钥匙串):
security find-internet-password -w -s "" -a "" -t "dflt" -l "" -r "http" -j 2>/dev/null | grep -v "keychain:" | awk -F'"' '/\"srvr\"/{srvr=$4}/\"acct\"/{acct=$4}/\"pwd\"/{pwd=$4; print srvr "," acct "," pwd}' > ~/Desktop/safari_passwords_raw.txt
4、使用文本编辑器打开safari_passwords_raw.txt,确认每行为“域名,用户名,密码”三字段逗号分隔格式;若存在空行或格式异常,需用sed -i '' '/^$/d' ~/Desktop/safari_passwords_raw.txt清理。
三、借助第三方开源工具Export-Safari-Passwords自动化导出
该工具专为macOS设计,能绕过图形界面限制,直接解析钥匙串数据库文件,生成标准CSV,并保留网址、用户名、密码、备注等完整字段。
1、在终端中执行:
curl -L https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/safari/safari.plugin.zsh -o ~/safari_export.sh
Krisp
AI噪音消除工具
下载
2、赋予执行权限:
chmod +x ~/safari_export.sh
3、运行导出命令:
~/safari_export.sh --csv > ~/Desktop/safari_export.csv
4、检查生成文件是否包含BOM头;如需兼容Excel,可用iconv -f UTF-8 -t UTF-8-MAC ~/Desktop/safari_export.csv > ~/Desktop/safari_export_excel.csv重编码。
四、异地备份前对CSV文件进行加密保护
导出的CSV文件含明文密码,直接上传网盘或传输至异地设备存在泄露风险,必须实施本地加密后再备份。
1、打开“访达”,右键点击safari_export.csv,选择“压缩“safari_export.csv””生成ZIP包。
2、在终端中执行AES-256加密:
zip -e ~/Desktop/safari_export_encrypted.zip ~/Desktop/safari_export.csv
3、输入两次高强度密码,完成后删除原始未加密CSV文件;验证加密包可用性:
unzip -t ~/Desktop/safari_export_encrypted.zip
4、将safari_export_encrypted.zip上传至iCloud Drive、Google Drive等云存储时,确保启用两步验证且禁用链接分享功能。
五、恢复时从CSV导入至目标设备钥匙串的替代路径
macOS原生不支持CSV直接导入钥匙串,但可通过AppleScript桥接方式将CSV逐行写入新条目,避免人工重复录入。
1、将CSV文件重命名为safari_import.csv,并确保首行为字段名:url,username,password。
2、在“脚本编辑器”中新建文档,粘贴以下AppleScript代码:
tell application "Keychain Access"
repeat with i from 2 to (count of paragraphs of (read POSIX file "~/Desktop/safari_import.csv"))
set lineData to paragraph i of (read POSIX file "~/Desktop/safari_import.csv")
set {url, user, pass} to text items of lineData
make new internet password item at end of keychain "login" with properties {server:url, account:user, password:pass}
end repeat
end tell
3、保存为应用程序,运行前需在“系统设置→隐私与安全性→完全磁盘访问”中授予脚本编辑器和钥匙串访问的权限。