Giousto per mantenere il mio lisp molto di base mi sono fatto altre due funzioncine la prima per generare un carattere pseudo random da una stringa
(defun m0rp30/random-string-char (&optional str)
"Get a random character from a string if you don't pass a string used a default srting"
(let* ((str (or str "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"))
(str_len (length str))
(rand (cl-random str_len)))
(substring str rand (+ rand 1))))
e l’altra, altrettento semplice serve per generare una password pseudo casuale
(defun m0rp30/password-generator (&optional len)
"Generate a pseudo random password, by default, length of 10 character"
(interactive)
(let* ((len (or len 10))
(i 0)
(pwd ""))
(while (< i len)
(setq pwd (concat pwd (m0rp30/random-string-char)))
(setq i (+ i 1)))
(message "%s" pwd)))
Sono sicura al 100% che esistono pacchetti che lo fanno e sicuramente meglio ma come dicevo ogni tanto, per queste sciocchezze, ci sta reinventare la ruota !!!