La sal no necesita tener 8 caracteres de longitud. Puede ser más largo, y mi versión de python la truncará a 16 bytes.
Para almacenar contraseñas usando crypt, cree un salt aleatorio para cada usuario y almacene el resultado.
Un ejemplo:
python -c "import crypt; print crypt.crypt('password', '\\3456789012345678901234567890')"
$6$1234567890123456$YfUD.j5zIFtfV6VgikPof2dzCCCZwL2YDraBX4HXi.J7iNq24667epYUCZGxExqOmHTnPWybzfYaynT29vKXJ/
python -c "import crypt; print crypt.crypt('insecure', '\\CsGd8FRcMSMV6VgikPof2dzCC0')"
$6$12CsGd8FRcMSMV6V$kSCxbE5y6ihnYHJ4UmbqUm6ohnhAmUYKaZQOpLQuXVXXzJuz4deR7pueK8vSx0f0OqtyhI9i0nd/Devv5bPT31
En el último ejemplo, mostrará la sal ( $6$12CsGd8FRcMSMV6V
) y la contraseña con hash ( kSCxbE5y6ihnYHJ4UmbqUm6ohnhAmUYKaZQOpLQuXVXXzJuz4deR7pueK8vSx0f0OqtyhI9i0nd/Devv5bPT31
). Para verificar la contraseña más adelante, debe volver a marcarla con el mismo salt (tendrá que guardar el salt en la base de datos) y comparar con el valor almacenado en la base de datos.