(defvar passwords ())
 (defun get-passwd (id prompt)
   (let ((val (assoc id passwords)))
     (cdr
      (if val val
        (car (push (cons id (read-passwd prompt))
                   passwords))))))