Common Lisp leer contraseña en terminal ocultando la entrada
Objetivo pedir una contraseña u otro dato sensible en la consola y ocultar lo que se escribe
> enter password
> enter password *****
Solución práctica en sistemas tipo Unix llamar a bin stty para activar o desactivar el eco del terminal antes y después de leer la línea. La idea es simple
1 crear una función enable-echo que invoque uiop run-program con el comando bin stty y el argumento echo con entrada y salida interactivas
2 crear una función disable-echo que invoque uiop run-program con bin stty y el argumento menos echo con entrada y salida interactivas
3 crear una función pass-prompt que muestre el texto password fuerce el volcado con force-output desactive el eco lea la línea con read-line y use unwind-protect para garantizar que el eco se reactive incluso si ocurre un error
4 opcionalmente una función prompt genérica que escriba un mensaje y lea una línea
Ejecuta este ejemplo con el intérprete de SBCL usando el comando sbcl --load read-password.lisp y verás el prompt que oculta los caracteres tecleados
Para ocultar o proteger valores sensibles en otros contextos como en la salida del REPL o en logs hay librerías útiles en el ecosistema de Common Lisp
• Secret Values enlace del proyecto en GitHub secret-values
• Privacy Output Stream enlace del proyecto en GitHub privacy-output-stream
Ambas han sido usadas en producción y son recomendables además puedes encontrar más alternativas en el listado comunitario awesome cl awesome-cl
Recursos extra sobre Lisp
• Por qué Lisp convence a quienes vienen de Python lectura comparativa Python vs Lisp
• Empresas que usan Lisp hoy en día awesome lisp companies
• Curso en video para aprender Common Lisp de forma eficiente curso en videos
Buenas prácticas
• Asegúrate de reactivar el eco siempre con una construcción tipo unwind-protect
• Evita imprimir la contraseña en consola logs o backtraces
• Considera manejar la entrada desde un stream sin eco cuando el entorno no disponga de stty por ejemplo en Windows usando la API del sistema
Cómo puede ayudarte Q2BSTUDIO
En Q2BSTUDIO desarrollamos aplicaciones a medida y software a medida con enfoque en seguridad desde el diseño incluyendo manejo seguro de credenciales cifrado de secretos y prácticas de hardening para terminales y servicios. Si tu organización requiere integrar autenticación robusta agentes IA para automatización de flujos o ia para empresas que interactúe con sistemas legados nuestro equipo puede ayudarte a implementarlo con los más altos estándares de ciberseguridad
Integramos soluciones de extremo a extremo con servicios cloud aws y azure analítica avanzada y servicios inteligencia de negocio apoyados en power bi además de automatización de procesos en pipelines de datos y aplicaciones. Conoce cómo elevamos la postura de seguridad de tus plataformas con nuestros servicios especializados de ciberseguridad y pentesting y cómo diseñamos y construimos aplicaciones a medida multiplataforma listas para escalar
Si estás modernizando tus herramientas en Common Lisp o cualquier otro stack y quieres incorporar inteligencia artificial ciberseguridad y observabilidad desde el día uno hablemos