Vi esta publicación aquí que menciona Un método para generar contraseñas seguras criptográficamente. Recientemente, me dieron una tarea similar y adopté un enfoque diferente.
Una de las respuestas en las preguntas utiliza lo siguiente
tr -dc '[:alnum:]' < /dev/urandom | head -c20
Mi método se parecía más a lo siguiente:
dd if=/dev/urandom bs="$password_length" count=1 | base64
No tenía un requisito para que fuera solo alfanumérico, y ningún requisito para que contenga símbolos o algo así. Los únicos requisitos fueron que tiene un mínimo de 8 caracteres (opté por 80 en la práctica porque, si solo necesita ser leído / usado por una máquina, ¿por qué no?), Y difícil de adivinar.
¿Hay alguna diferencia (criptográficamente significativa) entre los dos métodos (aparte de la longitud)?