¿Cómo puedo usar scripts de llavero para escribir un guión en Applescript que recupera el nombre de usuario y la contraseña de un sitio web desde el llavero inicio de sesión , dada la URL del sitio web?
¿Cómo puedo usar scripts de llavero para escribir un guión en Applescript que recupera el nombre de usuario y la contraseña de un sitio web desde el llavero inicio de sesión , dada la URL del sitio web?
Si conoce el nombre exacto del elemento del llavero, puede usar lo siguiente:
tell application "Keychain Scripting" to tell keychain "login.keychain" to get {account, password} of (first Internet key whose name is "www.google.com")
Lo que pasa es que las secuencias de comandos de Keychain son lentas y bastante buggy. Por ejemplo, la búsqueda de un elemento de llavero específico en el ejemplo anterior utilizando name contains
en lugar de name is
no funciona. Tendría que usar una declaración de repetición similar a la que @Philip publicó:
tell application "Keychain Scripting" to tell keychain "login.keychain"
repeat with x from 1 to (count every Internet key)
if name of Internet key x contains "Google" then
return {account, password} of Internet key x
end if
end repeat
end tell
Si estás de acuerdo en usar la línea de comandos y solo quieres buscar cosas, prefiero usar:
security find-internet-password -g -s www.google.com
y luego grep lo que quieres.
Las secuencias de comandos de llavero están bastante mal en Lion, por lo que la herramienta de línea de comandos de seguridad es su mejor opción. Alternativamente, use la adición de secuencias de comandos de Red Sweater, que es más rápida y más fácil de usar que las secuencias de comandos de Acceso a Llaves antiguas.
Blog de suéter rojo: Secuencias de comandos de llavero utilizables para León
Keychain está expuesto a Applescript a través de la aplicación Keychain Scripting . Hay numerosos ejemplos en la web, siendo este el uso más básico:
set theShortUserName to do shell script "/usr/bin/whoami" --get the short
userid. This is how your default keychain is labled.
tell application "Keychain Scripting"
set myKeyChain to keychain theShortUserName
set theKeyList to every Internet key of myKeyChain --email keys are
normally Internet Keys
repeat with x from 1 to (length of theKeyList)
set theKey to item x of theKeyList
if the name of theKey is "name of key here" then
set thePassword to password of theKey --grab the password
set theUserID to the account of theKey --grab the userid
end if
end repeat
end tell
Lea otras preguntas en las etiquetas keychain applescript